Napisałem aplikację w Scali, która używa Sparka.
Aplikacja składa się z dwóch modułów - modułu App
, który zawiera klasy z inną logiką oraz modułu Env
, który zawiera kod inicjalizacji środowiska i systemu, a także funkcje użytkowe.
Punkt wejścia znajduje się w Env
, a po inicjalizacji tworzy klasę w App
(zgodnie z args
, przy użyciu Class.forName
) i logika jest wykonywana.
Moduły są eksportowane do 2 różnych JARów (mianowicie env.jar
i app.jar
).Jaki jest właściwy sposób uruchamiania aplikacji Spark na YARN przy użyciu Oozie (z Hue)?
Po uruchomieniu aplikacji lokalnie, działa dobrze. Następnym krokiem jest wdrożenie aplikacji na moich serwerach. Używam CDH 5.4 Cloudera.
użyłem Hue, aby utworzyć nowy Oozie przepływ pracy z zadaniem Spark z następującymi parametrami:
- Spark Master:
yarn
- Mode:
cluster
- App nazwa:
myApp
- Słoiki/py pliki:
lib/env.jar,lib/app.jar
- Kategoria główna:
env.Main
(w moduleEnv
) - argumenty
app.AggBlock1Task
Następnie umieszcza się 2 JAR w folderze lib
w folderze przepływu pracy (/user/hue/oozie/workspaces/hue-oozie-1439807802.48
).
Kiedy uruchomić przepływ pracy, to rzuca FileNotFoundException
a aplikacja nie wykonuje:
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
Jednak kiedy wychodzę parametry Master Spark i tryb pusty, to wszystko działa poprawnie, ale kiedy sprawdzić spark.master
programowo jest ustawiony na local[*]
, a nie na yarn
. Również, gdy obserwując dzienniki, natknąłem to pod konfiguracji działania Spark Oozie:
--master
null
--name
myApp
--class
env.Main
--verbose
lib/env.jar,lib/app.jar
app.AggBlock1Task
Przypuszczam nie robię to dobrze - nie ustawienie mistrza zapłonową i parametry trybu i uruchamiając aplikację z spark.master
zestaw do local[*]
. O ile mi zrozumieć, tworząc SparkConf
obiektu w aplikacji należy ustawić właściwość spark.master
aby cokolwiek określić w Oozie (w tym przypadku yarn
), ale po prostu nie działa, gdy to zrobić ..
Czy istnieje coś Robię źle lub zaginęłam?
Każda pomoc będzie doceniona!
Przyjemne znalezisko, to podchwytliwe, będzie wyglądało na dodanie lepszej pomocy w interfejsie użytkownika! – Romain