sqoop------安装、导入导出命令

sqoop的本质?

将sqoop的语句转换成MapReduce来进行数据迁移(多数为maptask)。

sqoop的命令

import:将结构数据库中的数据导入到hdfs中

export:将hadoop中的数据导出到关系数据库

关系型数据库<----->hdfs

关系型数据库----->hive、hbase

sqoop安装

1.解压配置环境变量

2.配置文件

sqoop-env.sh

//hadoop安装目录
export HADOOP_COMMON_HOME= 
export HADOOP_MAPRED_HOME=
//hive安装目录
export HIVE_HOME=
//配置zookeeper
export ZOOCFGDIR=

sqoop-site.xml不用配置即可

3.mysql驱动包cp到sqoop的安装目录下的lib下面

4.测试运行

sqoop version
sqoop help

sqoop的语句

//参考文档
http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_literal_sqoop_list_databases_literal

原则上是写在一行,但是可以用\表示该行未结束。

1.连接到mysql
sqoop list-databases -connect jdbc:mysql://mini1:3306 \
--username root --password root \
;
2.import导入(导入所有列)
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root \
--table aa -m 1 \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /sqo/01 \
;
//aaa 是表名字 	-m是用m个map task去并行执行
//--target-dir 指定导入到hdfs的路径
3.import导入(导入某些列)
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root \
--table aa -m 1 \
--columns 'name' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /sqo/03 \
;
//加上 --columns 
4.import导入到hive表
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root \
--table aa -m 1 \
--columns 'name' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--create-hive-table --hive-import --hive-overwrite \
--hive-table olqf.sqo --delete-target-dir \
;
4.import指定where导入
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root \
--table aa -m 1 \
--columns 'id,name' \
--where 'id>2' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /sqo/03 --delete-target-dir \
;
5.import指定query导入
//query替换table、column、where条件
//conditions结束符号
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root -m 1 \
--query 'select id,name from aa where id>2 and $CONDITIONS' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /sqo/04 --delete-target-dir \
;
6.import指定split-by来导入
//平分成m部分
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root -m 2 \
--table aa \
--split-by id \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\N' --null-non-string '\\N' \
--target-dir /sqo/05 --delete-target-dir \
;

导出到mysql中

//update-mode 更新模式 updateonly | allowinsert
sqoop export -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password root --table aa2 -m 1 \
--export-dir '/sqo/02' \
--input-fields-terminated-by '\t' --input-lines-terminated-by '\n' \
--input-null-string '\\N' --input-null-non-string '\\N' \
;

你可能感兴趣的:(Sqoop)