gpt4 book ai didi

hadoop - 为什么使用 ORC 的 MapReduce 进程需要一个 HIVE 类?

转载 作者:可可西里 更新时间:2023-11-01 15:20:52 25 4
gpt4 key购买 nike

我正在实现一个 mapreduce 进程,其中读取、处理和写入 orc 文件,问题是当我尝试使用 map 任务读取时它会产生一个错误,要求 org.apache.hadoop.hive.common.io。 DiskRange 类,当我导入 hive-exec.3.1.1.jar 时它可以工作,但集群使用另一个配置单元版本及其旧的依赖项,这是一个错误的解决方案。

java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/hadoop/hive/common/io/DiskRange
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/hive/common/io/DiskRange
at org.apache.orc.OrcFile.createReader(OrcFile.java:342)
at org.apache.orc.mapreduce.OrcInputFormat.createRecordReader(OrcInputFormat.java:68)
at org.apache.hadoop.mapreduce.lib.input.DelegatingRecordReader.<init>(DelegatingRecordReader.java:57)
at org.apache.hadoop.mapreduce.lib.input.DelegatingInputFormat.createRecordReader(DelegatingInputFormat.java:129)
at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.<init>(MapTask.java:512)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:755)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

最佳答案

我正在为 OrcStruct 和 hive.ql.io.orc.OrcSerde 使用原生的 orc 库,这导致了异常。现在我正在使用 hive.ql.io.orc 中的所有库。

关于hadoop - 为什么使用 ORC 的 MapReduce 进程需要一个 HIVE 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53227970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com