sqoop原理

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數據中最好不要有像 ’ 等特殊字符,不然可能會報無法解析

就先這些啦!呼呼~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章