1,报错信息:
Job failed as tasks failed. failedMaps:1 failedReduces:0
2,问题分析:
sqoop导出数据的时候,一般这样的报错判断有两种可能,一种是字段长度的问题,还有一种就是分隔符的问题首先需要到CHD平台去查看yarn的允许日志,查看报错的详细内容,具体是哪一个表的哪一个字段报错,以及报错的类型是什么,我出现的问题有两种
(1)Data too long for column ‘XXX’ at row 67
问题解析:
这样的错误表示XXX字段类型长度不够,hive的数据在导出的时候太长了,没有办法插入到MySQL里面
解决方式:
查看hive表字段的长度,然后修改MySQL表字段XXX的对应长度
(2)Mysql:Incorrect string value: '\xF0\x9F\x8D\x83\xF0\x9F...' for column
问题解析:
Mysql数据编码格式为“utf-8”,对于汉字来说足够;Mysql中utf8占3个字节,但是,3个字节对于表情符号是不够的,需4个字节;此时使用utf8,会出现‘\xF0\x9F\x8D\x83\xF0\x9F’的问题。
解决方式:
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。修改对应表字段的编码格式为utf8mb4
ALTER TABLE table1 CHANGE col1 col1 字段类型(字段长度) CHARACTER SET utf8mb4 ;