sqoop命令举例
1)列出mysql数据库中的所有数据库
sqoop list-databases -connect jdbc:mysql://172.31.100.115:3306/ -username root -password 123456
2)连接mysql并列出test数据库中的表
sqoop list-tables -connect jdbc:mysql://172.31.100.115:3306/etl -username root -password 123456
命令中的test为mysql数据库中的etl数据库名称 username password分别为mysql数据库的用户密码
3)将关系型数据的表结构复制到hive中,只是复制表的结构,表中的内容没有复制过去。
sqoop create-hive-table -connect jdbc:mysql://172.31.100.115:3306/etl -table ads_log_kakou_month -username root -password 123456 -hive-table sqoop_test_etl
其中 –table sqoop_test为mysql中的数据库test中的表 –hive-table test 为hive中新建的表名称
4)从关系数据库导入文件到hive中
sqoop import -connect jdbc:mysql://172.31.100.115:3306/etl -username root -password 123456 -table ads_log_kakou_month -hive-import -hive-table s_sqoop_test_etl -m 1
-table ads_log_kakou_month 这是mysql中的表名称,-hive-import -hive-table s_sqoop_test_etl这是hive中的表名。hive中可以不提前建表也可以导入进去。
5)将hive中的表数据导入到mysql中,在进行导入之前,mysql中的表hive_test必须已经提前建好,而且结构必须和hive表中一致。
sqoop export -connect jdbc:mysql://172.31.100.115:3306/sqoop_test -username root -password 123456 -table hive_test --fields-terminated-by '\001' --export-dir /dfs/user/hive/warehouse/s_sqoop_test_etl/part-m-00000
hive的表有个分隔符,所以要加一条这样的语句--fields-terminated-by '\001' 不然会报错