sqoop1 導出與hue oozie踩坑

多是不一樣版本不一樣吧,按網友的最終改成:java

export --connect jdbc:mysql://172.16.5.100:3306/dw_test --username testuser --password ****** --table che100kv --export-dir /user/hive/warehouse/che100kv0/000000_0 --input-fields-terminated-by \001 -m 1mysql

報錯: Error during export: 
Export job failed!
    at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:439)
    at org.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:931)
    at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:sql

<<< Invocation of Sqoop command completed <<<

Hadoop Job IDs executed by Sqoop: job_1534936991079_0934

Intercepting System.exit(1)

<<< Invocation of Main class completed <<<

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]

Oozie Launcher failed, finishing Hadoop job gracefully

Oozie Launcher, uploading action data to HDFS sequence file: hdfs://master:8020/user/hue/oozie-oozi/0000099-180903155753468-oozie-oozi-W/sqoop-4411--sqoop/action-data.seqapache

後必須 加--columns且表名 字段等對應:oop

export --connect jdbc:mysql://172.16.5.100:3306/dw_test --username testuser --password *** --table che100kv --export-dir /user/hive/warehouse/che100kv0 --input-fields-terminated-by \001 -m 1 --columns db_t_f,k,v --update-key db_t_f --update-mode allowinsert --batchcode

後又報null轉化錯誤:utf-8

sqoop export --connect "jdbc:mysql://172.16.5.100:3306/dw_test?useUnicode=true&characterEncoding=utf-8"  --username testuser --password ********* --table dimbrandstylemoudle  --export-dir '/user/hive/warehouse/dimbrandstylemoudle/'   --input-null-string "\\\\N" --input-null-non-string "\\\\N" --input-fields-terminated-by "\001" --input-lines-terminated-by "\\n" -m 1hadoop

而後在HUE裏引號轉碼bug沒法同時兼備--!get

 Sqoop查看更多調式信息, 增長關鍵字--verboseinput

sqoop export --connect jdbc:mysql://192.168.119.129:3306/student?characterEncoding=utf8 --username li72 --password 123 --verbose --table dm_trlog --export-dir /home/bigdata/hive/data/db1.db/trlog --input-fields-terminated-by '\t' --null-non-string '0' --null-string '0';

類型轉換最終方法,修改生成的Java類,從新打包。

每次經過sqoop導入MySql的時,都會生成一個以MySql表命名的.java文件,而後打成JAR包,給sqoop提交給hadoop 的MR來解析Hive表中的數據。那能夠根據報的錯誤,找到對應的行,改寫該文件,編譯,從新打包,sqoop能夠經過 -jar-file ,--class-name 組合讓咱們指定運行本身的jar包中的某個class。來解析該hive表中的每行數據。腳本以下:一個完整的例子以下:  ./bin/sqoop export --connect "jdbc:mysql://192.168.119.129:3306/student?useUnicode=true&characterEncoding=utf-8"  --username li72 --password 123 --table dm_trlog  --export-dir /hive/warehouse/trlog --input-fields-terminated-by '\t'  --input-null-string '\\N' --input-null-non-string '\\N'  --class-name com.li72.trlog  --jar-file /tmp/sqoopTempjar/trlog.jar  上面--jar-file 參數指定jar包的路徑。--class-name 指定jar包中的class。  這樣就能夠解決全部解析異常了。 

相關文章
相關標籤/搜索