sqoop faq

本文是整理使用sqoop过程中出现过的问题以及对应的解决方案。

1.Can't parse input data: '\N' 空字符串造成的

解决方式:--input-null-string "\\\\N" --input-null-non-string "\\\\N" \

2. Can't parse input data: 'JM密封罐4件套分类存储防潮带刻度杂粮储物罐(一大两中一小)【合伙人专供】'

解决方式:trim(field)

3.Can't parse input data: 'NULL'

解决方式:nvl(field,'')

4.Caused by: java.lang.RuntimeException: Can't parse input data: 'JM密封罐4件套分类存储防潮带刻度杂粮储物罐(一大两中一小)【专供】

解决方式:不能解析字符串,有特殊字符,hive中处理掉,使用','分隔符,
防止\t特殊字符出现在hive表中,导致行的错乱,并且在sql中替换掉特殊字符

5.使用--update-key "monthkey,partner_id" --update-mode allowinsert

发现导出到mysql时没有更新记录而直接插入了,解决方式是建立mysql表时指定主键

6.sqoop1在oozie中执行任务,Error: app_total_partner_accu : Unsupported major.minor version 52.0

sqoop会先找cdh本身的jdk,如果cdh本身的jdk不存在,再去找其他的,
集群中没有cdh的那个jdk,而去找到了1.8版本的jdk,造成低版本用高版本编译失败。
解决方式是将cdh本身jdk放到/usr/java目录下。

7.Error: java.io.IOException: Cannot run program "mysqldump": error=2, 没有那个文件或目录

mysql->hive  使用了下面的命令,问题出在--direct上面,去掉即可
import --direct 
--connect "jdbc:mysql://ip:port/database?zeroDateTimeBehavior=convertToNull" 
--table "table1" 
--username "slave_data" 
--password "ungsten@dafy098QWE123" 
--target-dir "/data/user/hive/warehouse/tmp.db/table2" --hive-database "tmp"
--hive-table "table2" --fields-terminated-by "\t" 
--null-string '\\N' 
--null-non-string '\\N' 
--check-column "dtCreateTime" 
--incremental "append" 
--last-value ${datenow} -m 10

转载于:https://my.oschina.net/lzhaoqiang/blog/3064523

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值