此次踩坑背景:
工作中使用sqoop同步工具从hive同步数据到mysql中时,遇到报错信息如下。
前提:本次出错由于一个字段是用户输入的文本数据,可能包含未知的特殊字符导致本次同步时出错。
Error: java.io.IOException: Can't export data, please check failed map task logs
Caused by: java.lang.RuntimeException: Can't parse input data: '0'
第一步:google搜“Can’t parse input data: ‘0’”
收获的信息大致都是:
数据中的分隔符与sqoop配置的分隔符不一致导致解析出错。
第二步:检查本次sqoop同步任务配置以及同步数据
同步数据:
- 本次同步的数据格式为hive默认的textfile格式,列默认分隔符为’\0001’,行默认分隔符为’\n’
同步任务配置:
- 列分割符为’\0001’,行分隔符为’\n’
显然不是同步任务配置与数据本身分隔符不一致导致的。
第三步:找到出错分区数据,手动排错
通过具体报错信息,找到了具