Рабочий процесс Oozie запускает Java-класс Hadoop Map Reduce.В свой проект Eclipse я добавил зависимости jar opencsv-2.3.jar и commons-lang-3-3.1 jar.Проект компилируется успешно, однако при перемещении его в кластер Hadoop я получаю ClassNotFoundError, хотя мой проект содержит jar.
Поскольку это работающая существующая устаревшая система, я не хочу менять зависимости среды.Следовательно, я пробовал разные комбинации, добавляя библиотеки в classpath без успеха.
Попытка: java.lang.NoClassDefFoundError: au / com / bytecode / opencsv / CSVReader - Загрузить файл Vaadin
Проверено с зависимостью maven от клиента MR - org.apache.hadoop: Hadoop-MapReduce-клиент-общее: 2.6.0-cdh5.4.2.
Устаревший jar в рабочей среде работает нормально, но скомпилированный jar моего проекта выдает следующие ошибки:
oozie syslog:
INFO [uber-SubtaskRunner] org.apache.hadoop.mapreduce.Job: Running job: job_123213123123_35305
INFO [communication thread] org.apache.hadoop.mapred.TaskAttemptListenerImpl: Progress of TaskAttempt attempt_1548794054671_35304_m_000000_0 is : 1.0
INFO [uber-SubtaskRunner] org.apache.hadoop.mapreduce.Job: Job job_123213123123_35305 running in uber mode : false
INFO [uber-SubtaskRunner] org.apache.hadoop.mapreduce.Job: map 0% reduce 0%
INFO [uber-SubtaskRunner] org.apache.hadoop.mapreduce.Job: Task Id : attempt_123213123123_35305_m_000001_0, Status : FAILED
oozie stderr:
Error: java.lang.ClassNotFoundException: au.com.bytecode.opencsv.CSVParser
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
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:163)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Пожалуйста, предложите, если я что-то упустил и что я могу попробовать.