hive向mysql导入数据错误问题( java.lang.RuntimeException: Can't parse input data:)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

最近因为工作需要开始接触hive和mysql的数据加载,其中hive向mysql存储数据时,因为hive 表的格式可能导致错误。下面讲下这个问题。


错误情况

运行sqoop语句,将hive数据导入mysql。

 sqoop export --connect jdbc:mysql://1.1.1.1:3306/database  --username root --password 123456 --table test_tmp --export-dir /apps/hive/warehouse/test_db/tmp_test --input-null-string '\N' --input-null-non-string '\N' --input-fields-terminated-by '\t'

执行后发现任务失败,查询日志如下:

2019-09-06 16:04:36,983 INFO [IPC Server handler 8 on 44004] org.apache.hadoop.mapred.TaskAttemptListenerImpl: Diagnostics report from attempt_1565257243596_0714_m_000001_0: Error: java.io.IOException: Can't export data, please check failed map task logs

	at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:122)

	at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)

	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)

	at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)

	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)

	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)

	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:170)

	at java.security.AccessController.doPrivileged(Native Method)

	at javax.security.auth.Subject.doAs(Subject.java:422)

	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1866)

	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:164)

Caused by: java.lang.RuntimeException: Can't parse input data: '>xhX@�'

	at pdm_runway_list_tmp.__loadFromFields(pdm_runway_list_tmp.java:2472)

	at pdm_runway_list_tmp.parse(pdm_runway_list_tmp.java:2190)

	at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:89)

	... 10 more

Caused by: java.lang.NumberFormatException: For input string: ">xhX@�"

	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

	at java.lang.Integer.parseInt(Integer.java:580)

	at java.lang.Integer.valueOf(Integer.java:766)

	at pdm_runway_list_tmp.__loadFromFields(pdm_runway_list_tmp.java:2259)

	... 12 more

分析

首先谷歌该异常,认为需要添加 --input-fields-terminated-by '\t',但我已经添加该设置。

但检查数据 发现并没有乱码的数据 >xhX@�

最后查看建表语句,发现有如下设置,应该时压缩和间隔对数据产生转移产生影响。

ROW FORMAT DELIMITED

  FIELDS TERMINATED BY '\t'

  LINES TERMINATED BY '\n'

STORED AS ORC

TBLPROPERTIES ("orc.compress"="SNAPPY")

;

解决

尝试用没有该项设置的新表存储转移数据,成功导出。


思考

发现建表时候设置会对导出数据产生影响(尤其时分隔符),而且之后的导出设置可能对这种表结构不起作用。而转移到临时表不失为一种好的方法。

mysql数据导入hive表timestamp值异常问题解决 mysql数据导入hive表中报错: Error: java.io.IOException: SQLException in nextKeyValue     at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:277)     at org.apache.hadoop.mapred... 阅读详情

相关推荐

sqoop mysql date_sqoop导出hive数据mysql报错:Causedby:java.lang.RuntimeException:Can'tparseinputdata的解决办法...

sqoop export数据到本地时出现错误,命令如下:sqoop export \--connect 'jdbc:mysql://202.193.60.117/dataweb?useunicode=true&characterencoding=utf-8' \--username root \--password-file /user/hadoop/.password \--table ...

weixin_30841011的博客 795

sqoop export:java.lang.RuntimeException: Can't parse input data

使用sqoophive导出数据mysql发生如下错误sqoop export --connect jdbc:mysql://192.168.38.64:3306/test --username root -P --table mytable --input-null-string '\\N' --export-dir /user/hive/warehouse/test.db/mytableEr

小满麦渐黄 6943

Hive表存在null值导出到MySQL报错:Can't parse input data: '\N'

使用sqoophive数据导到mysql时因空值报错问题 在hdfs上查看hive内部表的数据,发现是使用\N来代表null值的,但是mysql只能识别null,无法识别\N,所以导入时会报以下错误: Caused by:java.lang.RuntimeException: Can't parse input data: '\N' 这时可以通过以下方法解决: 1、使用...

清韵凌波的博客 2455

Sqoop报错Caused by: java.lang.RuntimeException: Can‘t parse input data: ‘王五‘

这样 Sqoop 将知道如何正确地映射数据类型,避免将字符串字段解析为整数。方法中,尝试将字符串 "张三" 解析为整数时发生了。在 Sqoop 导出命令中使用。在 Sqoop 导出命令中使用。根据之前的错误信息,看起来在。字段是字符串类型,不应该在。选项指定要导出的列,排除。选项明确指定字段映射。方法中被解析为整数。

qq_50833617的博客 919

sqoop export Caused by: java.lang.RuntimeException: Can't parse input data: '\N'

Error: java.io.IOException: Can't export data, please check failed map task logs at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:112) at org.apache.sqoop.mapreduce.TextExpor...

滴水穿石的启示 4603

sqoop导出hive数据mysql错误: Caused by: java.lang.RuntimeException: Can't parse input data

Sqoop Export数据到本地数据库时出现错误,命令如下: sqoop export \ --connect 'jdbc:mysql://202.193.60.117/dataweb?useUnicode=true&characterEncoding=utf-8' \ --username root \ --password-file /user/hadoop/.passw...

weixin_33933118的博客 671

sqoop迁移hive数据mysql提示如下错误

Caused by: java.lang.RuntimeException: Can't parse input data: '{"com_juzi_id":"0","com_status_name":"正常","cat_name":"智能硬件","com_city":"北京","com_xiniu_id":"207573","com_logo_archive":"https://api.xin...

阿正的博客 1152

sqoop遇见的bug

1采用sqoopHive中的数据导入Mysql中,发现job failed,跑到8088上去看完整日志,发现 ava.lang.RuntimeException: Can't parse input data: '20011.1.21.1.2本次更新修复了转账额度异常,兑换话费错误,闪退等等BUGhttps://android.myapp.com/myapp/detail.htm?a...

weixin_42656794的博客 372

从零开始搭建大数据处理实战环境

通过网盘分享的文件:YU.csv链接: https://pan.baidu.com/s/1sSrx5xGe8Lq9-MuHA4I00Q 提取码: f749通过网盘分享的文件:文件链接: https://pan.baidu.com/s/1Y3ubq9LohbVEPibKHOjASQ 提取码: 7j6p(一)前置配置完成所有开发环境的安装与配置,包括:VMware虚拟机安装CentOS 7(或者ubuntu16.04)CentOS 7中安装HadoopHiveSqoopMySQL

2301_81396079的博客 290

Caused by: java.lang.RuntimeException: Can‘t parse input data: ‘硕士19.64294.6515‘

使用sqoopmysql导入数据出现了问题 20/12/25 16:03:30 INFO mapreduce.Job: Task Id : attempt_1608882642389_0001_m_000000_2, Status : FAILED Error: java.io.IOException: Can't export data, please check failed map task logs at org.apache.sqoop.mapreduce.TextExportMapper.m

Knight 1823

sqoop导入导出报错Can't parse input data

如果使用sqoop导出数据时,总是遇到:Can’t parse input data: ‘’" 感觉莫名其妙; 其实多半原因是数据里有回车换行,也就是空行导致的,去除空行即可,请注意。 使用replace("\r\n","")把空行换成标签 ...

zl15210191009的博客 1万+

sqoop导出hive数据mysql错误Can't parse input data java.util.NoSuchElementException解决办法

sqoop导出hive数据mysql错误Can't parse input data java.util.NoSuchElementException解决办法

sunyang098的博客 1万+

Sqoop常见报错及解决方式

1.java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver 原因:[SQOOP_HOME]/lib/下缺少mysql驱动包 2.Caused by: java.lang.RuntimeException: Can’t parse input data: '800 1 620025 塑料油箱 ';java.io.IOException: Can’t export data, please check

清平乐的技术专栏 6872

SQOOPsqoop java.lang.RuntimeException: Can‘t parse input data: ‘\N‘,For input string: “\N“

背景: sqoophive数据mysql,出现异常java.lang.RuntimeException: Can't parse input data: '\N',For input string: "\N" Error: java.io.IOException: Can't export data, please check failed map task logs at org.apache.sqoop.mapreduce.TextExportMapper.map...

Zsigner的博客 2504

使用DataX将将数据Hive同步到MySQL报错 获取表字段相关信息失败.]

报错内容 经DataX智能分析,该任务最可能的错误原因是: com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-01], Description:[获取表字段相关信息失败.]. - 获取表:test 的字段的元信息时失败. 请联系 DBA 核查该库、表信息. - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘c

wufabao的博客 5870

DataX 同步mysql数据hive

安装配置datax 略 配置mysql数据源和目标端 hive vim conf/table2hdfs.json { "job": { "setting": { "speed": { "channel":1 } }, "content": [ { "reader": { "name": "mysqlreader", "parameter": {

dymkkj的专栏 1601
上一篇: 反射泛型相关类问题总结(java.lang.IllegalArgumentException: argument type mismatch)
下一篇: nohup运行sqoop卡顿问题
jyj019
博客等级 码龄9年 86粉丝 60原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值