数据表
第一类:数据库中的数据导入到HDFS上
#数据库驱动jar包用mysql-connector-java-5.1.31-bin,否则有可能报错! ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --columns 'uuid, name, tele' :<<! 输出: part-m-00000: 1,总裁办,8888 2,采购部,6668 3,销售部,6888 part-m-00001: 4,运输中心,3434 5,库管中心,5666 6,人力资源,1234 part-m-00002: 7,财务部,9999 part-m-00003: 13,222,222 !
#指定输出路径、指定数据分隔符 ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --target-dir '/sqoop/td' --fields-terminated-by ' ' :<<! 输出: part-m-00000: 1 总裁办 8888 2 采购部 6668 3 销售部 6888 part-m-00001: 4 运输中心 3434 5 库管中心 5666 6 人力资源 1234 part-m-00002: 7 财务部 9999 part-m-00003: 13 222 222 !
#指定Map数量 -m ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --target-dir '/sqoop/td1' --fields-terminated-by ' ' -m 2 :<<! 输出: part-m-00000: 1 总裁办 8888 2 采购部 6668 3 销售部 6888 4 运输中心 3434 5 库管中心 5666 6 人力资源 1234 part-m-00001: 7 财务部 9999 13 222 222 !
#增加where条件, 注意:条件必须用引号引起来 ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --where 'uuid>3' --target-dir '/sqoop/td2' :<<! 输出: part-m-00000: 4 运输中心 3434 5 库管中心 5666 6 人力资源 1234 part-m-00001: 7 财务部 9999 part-m-00002: part-m-00003: 13 222 222 !
#增加query语句(可使用 将语句换行) ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --query 'SELECT * FROM tbl_dep where uuid > 2 AND $CONDITIONS' --split-by tbl_dep.uuid --target-dir '/sqoop/td3' :<<! 输出: part-m-00000: 3 销售部 6888 4 运输中心 3434 5 库管中心 5666 part-m-00001: 6 人力资源 1234 7 财务部 9999 part-m-00002: part-m-00003: 13 222 222 注意:如果使用--query这个命令的时候,需要注意的是where后面的参数,AND $CONDITIONS这个参数必须加上,而且存在单引号与双引号的区别,如果--query后面使用的是双引号,那么需要在$CONDITIONS前加上即$CONDITIONS,如果设置map数量为1个时即-m 1,不用加上--split-by ${tablename.column},否则需要加上 !
第二类:将HDFS上的数据导出到数据库中(不要忘记指定分隔符)
./sqoop export --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --export-dir '/sqoop/td3' --table aaa -m 1 --fields-terminated-by ','