Как указать несколько файлов JAR в OOZIE

Мне нужно решение для следующей проблемы: Мой проект имеет две банки, в которых

один jar содержит все классы bean-компонентов, такие как Employee и т. д., а другой jar-файл содержит задания MR, которые используют первый класс bean-компонентов jar, поэтому, когда я пытаюсь запустить MR-задание как простую java-программу, я сталкиваюсь с проблемой класса not found (com. Класс abc.Employee не найден, как в другом банке), поэтому любой может дать мне решение, как решить проблему.... так как в реальном времени может быть много банок, а не 1 или 2, как указать все эти банки любой, пожалуйста, ответьте как можно скорее.

1 ответ

Решение

Вы должны иметь lib папка в каталоге HDFS, где вы храните ваш рабочий процесс Oozie. Вы можете поместить оба jar-файла в эту папку, и oozie обеспечит, чтобы оба были в пути к классам, когда ваше задание MR выполнится:

hdfs://namenode:8020/path/to/oozie/app/workflow.xml
hdfs://namenode:8020/path/to/oozie/app/lib/first.jar
hdfs://namenode:8020/path/to/oozie/app/lib/second.jar

См. Развертывание приложений Workflow для более подробной информации.

Если вы часто используете jar-файлы в нескольких рабочих процессах oozie, вы можете поместить эти распространенные jar-файлы (например, jar-файлы HBase) в каталог в HDFS, а затем указать в свойстве oozie включение jar-файлов этой папки. Дополнительные сведения см. В разделе Общие библиотеки HDFS.

Другие вопросы по тегам