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