Я реализую процесс 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)