Я пытаюсь запустить простое задание Java Spark с помощью Oozie в кластере EMR. Задание просто берет файлы из входного пути, выполняет с ним несколько основных действий и помещает результат в другой выходной путь.
Когда я пытаюсь запустить его из командной строки, используя команду spark-submit, как показано ниже, все работает нормально:
spark-submit --class com.someClassName --master yarn --deploy-mode cluster /home/hadoop/some-local-path/my-jar-file.jar yarn s3n://input-path s3n://output-path
Затем я настроил то же самое в рабочем процессе Oozie. Однако при запуске оттуда задание всегда терпит неудачу. Журнал stdout содержит эту строку:
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SparkMain], main() threw exception, Attempt to add (hdfs://[emr-cluster]:8020/user/oozie/workflows/[WF-Name]/lib/[my-jar-file].jar) multiple times to the distributed cache.
java.lang.IllegalArgumentException: Attempt to add (hdfs://[emr-cluster]:8020/user/oozie/workflows/[WF-Name]/lib/[my-jar-file].jar) multiple times to the distributed cache.
Я нашел примечание базы знаний и еще один < href="https://stackoverflow.com/questions/45209705/adding-multiple-jars-in-oozie-spark-action">вопрос здесь, в StackOverflow, который имеет дело с аналогичной ошибкой. Но для них задание не выполнялось из-за внутреннего JAR-файла, а не того, который пользователь передает для запуска. Тем не менее, я попробовал его шаги по разрешению, чтобы удалить файлы jar, общие для spark и oozie в share-lib, и в итоге удалил несколько файлов из "/user/oozie/share/lib/lib_*/spark ". К сожалению, это тоже не решило проблему.
Любые идеи о том, как отладить эту проблему?