Зачем процессу MapReduce с ORC нужен класс HIVE? - PullRequest
0 голосов
/ 09 ноября 2018

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

1 Ответ

0 голосов
/ 12 ноября 2018

Я использовал собственную библиотеку orc для OrcStruct и hive.ql.io.orc.OrcSerde, это вызвало исключение. Сейчас я использую все библиотеки из hive.ql.io.orc.

...