Я написал приложение в Scala, которое использует Spark.
Приложение состоит из двух модулей - модуля App
, который содержит классы с разной логикой и модуль Env
, который содержит код инициализации среды и системы, а также служебные функции.
Точка входа находится в Env
, а после инициализации она создает класс в App
(согласно args
, используя Class.forName
) и выполняется логика.
Модули экспортируются в 2 разных JAR (а именно, env.jar
и app.jar
).Каков правильный способ запуска приложения Spark в YARN с помощью Oozie (с оттенком)?
Когда я запускаю приложение локально, он выполняется хорошо. Следующим шагом будет развертывание приложения на моих серверах. Я использую CDH 5.4 для Cloudera.
Я использовал Hue для создания нового рабочего процесса Oozie с задачей Спарк со следующими параметрами:
- Искра Мастер:
yarn
- Режим:
cluster
- App Название:
myApp
- Банки/py файлы:
lib/env.jar,lib/app.jar
- Основной класс:
env.Main
(в модулеEnv
) - Аргументы:
app.AggBlock1Task
Затем я поместил 2 баночки в папке lib
в папке рабочего процесса (/user/hue/oozie/workspaces/hue-oozie-1439807802.48
).
При запуске рабочего процесса, он бросает FileNotFoundException
и приложение не выполняет:
java.io.FileNotFoundException: File file:/cloudera/yarn/nm/usercache/danny/appcache/application_1439823995861_0029/container_1439823995861_0029_01_000001/lib/app.jar,lib/env.jar does not exist
Однако, когда я уезжаю параметры мастер Спарк и режим пуст, все работает нормально, но когда я проверяю spark.master
программно он установлен в local[*]
, а не yarn
. Кроме того, при наблюдении бревна, я столкнулся с этим при конфигурации Спарк действия Oozie:
--master
null
--name
myApp
--class
env.Main
--verbose
lib/env.jar,lib/app.jar
app.AggBlock1Task
Я предполагаю, что я не делаю это правильно - не устанавливать мастер Спарк и параметры режима и запуска приложения с spark.master
набором для local[*]
. Насколько я понимаю, создание SparkConf
объекта в приложении необходимо установить spark.master
свойства, что я указать в Oozie (в данном случае yarn
), но он просто не работает, когда я делаю это ..
Есть ли что-то Я делаю не так или нет?
Любая помощь будет высоко оценена!
Приятная находка, это сложно, посмотрим на добавление лучшей помощи в пользовательском интерфейсе! – Romain