博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqoop1 导出与hue oozie踩坑
阅读量:5749 次
发布时间:2019-06-18

本文共 2582 字,大约阅读时间需要 8 分钟。

hot3.png

可能是不同版本不同吧,按网友的最终改为:

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

报错: 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:

<<< 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.seq

后必须 加--columns且表名 字段等对应:

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 --batch

后又报null转化错误:

sqoop export --connect "jdbc:mysql://"  --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 1

然后在HUE里引号转码bug无法同时兼备--!

 Sqoop查看更多调式信息, 增加关键字--verbose

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。 
这样就可以解决所有解析异常了。 

转载于:https://my.oschina.net/hblt147/blog/2054597

你可能感兴趣的文章
存储过程简单实例
查看>>
大话 程序猿 眼里的 接口
查看>>
struts2用了哪几种模式
查看>>
replace函数结合正则表达式实现转化成驼峰与转化成连接字符串的方法
查看>>
ubuntu 初学常用命令
查看>>
WCF客户端与服务端通信简单入门教程
查看>>
判断是否含有中文
查看>>
MyEclipse Web开发教程:XML & XML架构(一)
查看>>
linux文件权限与属性的更改
查看>>
Jquery绑定事件
查看>>
android 资源种类及使用
查看>>
Explorer程序出错
查看>>
java之抽象工厂
查看>>
log4j2性能剖析
查看>>
修改系统时间 ubuntu
查看>>
Centos7同时运行多个Tomcat
查看>>
使用CocoaPods过程中的几个问题
查看>>
我的友情链接
查看>>
mysql数据类型---数值型---int
查看>>
为eclipse安装maven插件
查看>>