1、查看mysql中所有的数据库
sqoop list-databases --connect jdbc:mysql://192.168.80.1/ --username root --password XXX
2、查看mysql中数据库中的表
sqoop list-tables --connect jdbc:mysql://192.168.80.1/test --username root --password XXX
3、导入MySQL数据到HDFS中
1)、 sqoop import --connect jdbc:mysql://192.168.80.1:3306/test --username root --password 123456 --table t1 --target-dir /user/sqoop --fields-terminated-by ',' -m 1
注意:
--target-dir 必须是不存在的路径,网上有方案说,支持--delete-target-dir,但是本人使用sqoop 1.4.7,加上这个参数,报错。
-m 1 如果源表没有主键,必须带上-m 1
如果有主键,这么导入报错。
有主键的表的shell命令为:
sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true --connect jdbc:mysql://192.168.80.1:3306/test --username root --password 123456 --table mtcars --target-dir /user/sqoop/sqooptest3 --fields-terminated-by ','
2)、sqoop import --connect jdbc:mysql://192.168.80.1:3306/test --username root --password 123456 --table t1 --target-dir /user/sqoop --fields-terminated-by ',' -m 1 --direct
备注:官网有说加上--direct会快速些,但是加上回报错,Cannot run program "mysqldump"。
网上找的方案:
1. 在安装了mysql的节点A中使用ROOT用户查找mysqldump在哪个目录下
find / -name mysqldump
2. 将查找到的路径下复杂mysqldump至数据节点B、C、D中
说明这两种导入hdfs底层实现不同。
4、导入My SQL表数据到Hive中
没有主键表的导入
1)、sqoop import --connect jdbc:mysql://192.168.80.1:3306/test --username root --password XXX --table stest --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite --create-hive-table --hive-table myhive.stest2 --delete-target-dir -m 1
备注:开始莫名各种错误,什么HiveConf.class 找不到,什么ERROR bonecp.BoneCP: Unable to start/stop JMX,最后看方案,将hive-site.xml 复制到sqoop/conf目录下,还是不行,最后莫名有成功了,hive中,能查看到表,但是成功执行的过程,已然报错:ERROR bonecp.BoneCP: Unable to start/stop JMX
java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
找不到原因。
有主键表的导入
sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true --connect jdbc:mysql://192.168.80.1:3306/test --username root --password XXX --table mtcars --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite --create-hive-table --hive-table myhive.mtcars --delete-target-dir