sqoop,各位看官基本上都瞭解或者聽說過,小二就不進行廢話了。另外基於國內大部分用的爲CDH,小二就想說一點:CDH中的sqoop2其實是apace版的sqoop1,聰明的看官不要被表面所迷惑了.
第一關:無圖無真相
第二關:無錯不歡 一般會有四類問題 1.缺少jdbc導致錯誤 2.無法解析的錯誤 一般會有一下這幾種情況: a.分割符的問題 要麼分割符不正確,要麼就是數據不純,有特殊字符 b.mysql庫和hive庫中的表結構不一致. c.mysql字段長度不夠。 d.字段格式不匹配。 e.mysql與hive中的字段不對應 順序、數目 f.mysql數據庫處於鎖表中 3.數據傾斜 解決辦法: 1.增大m數,緩解數據傾斜 2.瞭解數據分佈,更改–split-by,或者進行表的拆分 4.–split-by 非主鍵時要特別注意NULL,另外內–split-by對於非數字類型的比如varchar的支持不是特別的好 第三關 無例難成米 在原有的目錄下進行追加,目錄可以存在,可以重複運行。
import --append --connect jdbc:mysql://hadoop-7:3306/test --username root --password 123456 --table cae01_psnmrtginfo_chenx --target-dir /usr/input/db -m 1
mysql導入到hive
sqoop import --connect jdbc:mysql://192.168.2.23:3306/testdb -- username root --password hadoop --table dwd_icc_clnt_bkinfo --hive-database dsc_dwd --hive-table dwd_icc_clnt_bkinfo --hive-import --hive-overwrite --null-string '\\N' --null-non-string '\\N' -m 1
sqoop import --append --connect jdbc:mysql://192.168.20.118:3306/test --username dyh --password 000000 --table userinfos --columns "id,age,name" --where "id > 3 and (age = 88 or age = 80)" -m 1 --target-dir /user/hive/warehouse/userinfos2 --fields-terminated-by ","
sqoop create-hive-table --connect jdbc:mysql://localhost:3306/test --table users --username dyh --password 000000 --hive-table users --fields-terminated-by "\0001" --lines-terminated-by "\n";
sqoop export --connect "jdbc:mysql://192.168.2.23/test/CCS_CUSTOMER:3306/buzi_data_tm?useUnicode=true&characterEncoding=utf-8" --username root --password hadoop --table dws_dsst_t_user --export-dir /user/hive/warehouse/dsc_dws.db/dws_i_ccs_ccs_customer/date=20151111 --input-fields-terminated-by '|' --input-null-non-string '\\N' --input-null-string '\\N' -m 1
/usr/bin/sqoop import -libjars /home/admin/packages/data_import/201512301112/config/../lib/ojdbc6-11.2.0.2.0.jar --connect 'jdbc:oracle:thin:@192:1555:test' --username root--password 123456 --query 'select LAST_MODIFY_TIME from RMPS.TM_RULE' --split-by id --target-dir /user/hdfs/RMPS.TM_RULE --hive-database raw_datas --hive-table a_RMPS_rmps_TM_RULE_20151230 --hive-import -m 1 --hive-delims-replacement \30 --null-string '\\N' --null-non-string '\\N'
最後一關:注意打Boss 1.用sqoop數據中最好不要有像 ’ 等特殊字符,不然可能會報無法解析
就先這些啦!呼呼~