命令:
1、export :将hadoop数据文件导入到数据库中
2、import :将数据导出到hadoop文件系统中
参数解释:
--connect 数据库连接命令
--username 数据库用户名
--password 数据库用户密码
--export-dir 导入的hadoop文件(由hadoop导入到数据库)
--target-dir 导出的hadoop文件(由数据库导出hadoop)
--table 导入的数据库表名
--columns 导入的数据库表字段
--where 导入的数据库表where条件
--query 导入的数据库表查询语句 ,查询where语句后面必须加上AND $CONDITIONS
--fields-terminated-by '|' 标识hadoop数据文件分隔符
-m 启动的map数量
--split-by 指定按数据库表列拆分(入库表没有主键,则需要指定拆分列或者指定map数量为1)
常用命令示例:
1、通过sqoop导出数据到mysql表中
./sqoop export --connect jdbc:mysql://192.168.226.132:3306/zebra --username root --password 123456 --export-dir '/park2/zebra/result/part-r-00000' --table f_http_app_host -m 1 --fields-terminated-by '|'
2、将mysql库表数据导入到hadoop中,指定输出路径、指定数据分隔符,指定map数量
./sqoop import --connect jdbc:mysql://192.168.226.132:3306/zebra --username root --password 123456 --table f_http_app_host --target-dir '/sqoop/zebra1' --fields-terminated-by '|' -m 1
3、将mysql库表数据导入到hadoop中,指定输出路径、指定数据分隔符,指定拆分字段
./sqoop import --connect jdbc:mysql://192.168.226.132:3306/zebra --username root --password 123456 --table f_http_app_host --target-dir '/sqoop/zebra2' --fields-terminated-by '|' --split-by reporttime
4、将mysql库表指定字段数据导入到hadoop中,指定输出路径、指定数据分隔符,指定map数量
./sqoop import --connect jdbc:mysql://192.168.226.132:3306/zebra --username root --password 123456 --table f_http_app_host --columns 'reporttime' --target-dir '/sqoop/zebra3' --fields-terminated-by '|' -m 15、将mysql库表指定where条件数据导入到hadoop中,指定输出路径,指定map数量
./sqoop import --connect jdbc:mysql://192.168.226.132:3306/zebra --username root --password 123456 --table f_http_app_host --where 'appType=11' --target-dir '/sqoop/zebra4' -m 1
6、将mysql库表自定义查询语句结果数据导入到hadoop中,指定输出路径,指定map数量
./sqoop import --connect jdbc:mysql://192.168.226.132:3306/zebra --username root --password 123456 --query 'SELECT * FROM f_http_app_host where appType=11 AND $CONDITIONS' --target-dir '/sqoop/zebra5' -m 1