MapReduce 读取 Hive ORC ArrayIndexOutOfBoundsException: 1024 异常解决

个人博客地址:MapReduce 读取 Hive ORC ArrayIndexOutOfBoundsException: 1024 异常解决 | 一张假钞的真实世界

在MR处理ORC的时候遇到如下异常:

复制代码
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1024
	at org.apache.orc.impl.RunLengthIntegerReaderV2.nextVector    (RunLengthIntegerReaderV2.java:369)
	at org.apache.orc.impl.TreeReaderFactory$BytesColumnVectorUtil.commonReadByteArrays    (TreeReaderFactory.java:1231)
	at org.apache.orc.impl.TreeReaderFactory$BytesColumnVectorUtil.readOrcByteArrays    (TreeReaderFactory.java:1268)
	at org.apache.orc.impl.TreeReaderFactory$StringDirectTreeReader.nextVector    (TreeReaderFactory.java:1368)
	at org.apache.orc.impl.TreeReaderFactory$StringTreeReader.nextVector    (TreeReaderFactory.java:1212)
	at org.apache.orc.impl.TreeReaderFactory$ListTreeReader.nextVector    (TreeReaderFactory.java:1902)
	at org.apache.orc.impl.TreeReaderFactory$StructTreeReader.nextBatch    (TreeReaderFactory.java:1737)
	at org.apache.orc.impl.RecordReaderImpl.nextBatch(RecordReaderImpl.java:1045)
	at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.ensureBatch(RecordReaderImpl.java:77)
	at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.hasNext(RecordReaderImpl.java:89)

通过搜索发现这个Bug在Hive 2.1.1版本中已经修复。我使用的就是这个版本,检查对应的源代码发现代码是已经按照下面的Patch修复过得:[[HIVE-14483] java.lang.ArrayIndexOutOfBoundsException org.apache.orc.impl.TreeReaderFactoryBytesColumnVectorUtil.commonReadByteArrays - ASF JIRA](https://issues.apache.org/jira/browse/HIVE-14483 "[HIVE-14483] java.lang.ArrayIndexOutOfBoundsException org.apache.orc.impl.TreeReaderFactoryBytesColumnVectorUtil.commonReadByteArrays - ASF JIRA")

通过反编译发现我最终打包后的代码中使用的是未修复Bug的代码版本。通过依赖包发现依赖的以下模块中也包含ORC的Jar:

复制代码
<dependency>
    <groupId>org.apache.orc</groupId>
    <artifactId>orc-mapreduce</artifactId>
    <version>1.1.0</version>
</dependency>

解决方法是将orc-mapreduce包升级到1.1.2版本,依赖配置如下:

复制代码
<dependency>
    <groupId>org.apache.orc</groupId>
    <artifactId>orc-mapreduce</artifactId>
    <version>1.1.2</version>
</dependency>
相关推荐
汤姆yu7 小时前
基于大数据的信贷风险评估的数据可视化分析与预测系统
大数据·信息可视化
春风霓裳8 小时前
sql-窗口函数
大数据·数据库·sql
梦里不知身是客1110 小时前
Spark的容错机制
大数据·分布式·spark
SelectDB11 小时前
从 OpenSearch 到 Apache Doris:领创集团日志系统升级实践,降本 45%
大数据·apache
点云SLAM11 小时前
方差的迭代计算公式
大数据·深度学习·数据分析·概率论·数学原理·概论率
LSL666_12 小时前
1 elasticSearch 和 IK分词器的本地下载
大数据·elasticsearch·jenkins
lpfasd12313 小时前
git-进阶技巧与最佳实践
大数据·git·elasticsearch
微盛AI企微管家14 小时前
企业微信AI聊天agent:优化企业微信客户运营的推荐工具
大数据·人工智能·微信·企业微信
hmb↑14 小时前
Apache Flink CDC——变更数据捕获
大数据·flink·apache
贝多财经14 小时前
双11释放新增量,淘宝闪购激活近场潜力
大数据