2016-10-13 10 views
7

Posiadam klaster niezależny Spark (nie od YARN/Mesos) i uruchomioną aplikację sterownika (w trybie klienta), która komunikuje się z tym klastrem w celu wykonania swoich zadań. Jeśli jednak zamknę i zrestartuję system Spark i jego pracowników, sterownik nie połączy się ponownie z masterem i wznowi pracę.Jak sprawić, by sterownik Spark był odporny na ponowne uruchomienie Master?

Być może jestem zdezorientowany co do związku między Mistrzem Sparków a kierowcą. Czy w takiej sytuacji Master jest odpowiedzialny za ponowne połączenie z kierowcą? Jeśli tak, to czy nadrzędny Master przekształca swój obecny stan na dysk gdzieś, który może przywrócić po ponownym uruchomieniu?

+0

Czy wykonujesz zadanie w trybie klienta lub w trybie klastra? Ponadto, który menedżer klastra działa? –

+0

Zadałem podobne pytanie tutaj http://stackoverflow.com/q/35815386/6022341 –

+0

@YuvalItzchakov Używam sterownika w trybie klienta. – dOxxx

Odpowiedz

3

Czy w takiej sytuacji kierowca jest ponownie odpowiedzialny za ponowne podłączenie sterownika do sterownika ? Jeśli tak, to czy serial Master przekształca swój aktualny stan na na dysk, który może przywrócić po ponownym uruchomieniu?

Relacja między węzłem głównym a sterownikiem zależy od kilku czynników. Po pierwsze, sterownik jest hostem SparkContext/StreamingContext i jest odpowiedzialny za wykonanie zadań. To on tworzy DAG i przechowuje DAGScheduler i TaskScheduler, które odpowiednio przypisują etapy/zadania. Węzeł główny może służyć jako host dla kierowcy w przypadku użycia Spark Standalone i uruchomienia zadania w "trybie klienta". W ten sposób Mistrz obsługuje również proces sterownika, a jeśli umiera, kierowca umiera podobnie jak on. W przypadku użycia "trybu klastra" sterownik znajduje się na jednym z węzłów roboczych i komunikuje się z głównym często, aby uzyskać status bieżącej pracy, wysłać metadane dotyczące stanu ukończonych partii, itp.

Działając w trybie autonomicznym, jeśli Mistrz umiera, a Ty go zrestartujesz, Mistrz nie wykonuje ponownie zadań, które zostały wcześniej uruchomione. Aby to osiągnąć, możesz utworzyć i dostarczyć klaster z dodatkowym węzłem głównym i skonfigurować go tak, aby ZooKeeper mógł utrzymywać stan Masters i wymieniać między nimi w przypadku niepowodzenia. Po skonfigurowaniu klastra w taki sposób, Mistrz wie o wcześniej wykonanych zadaniach i wznawia je w twoim imieniu, gdy nowy Mistrz przejął inicjatywę.

Możesz przeczytać, jak utworzyć rezerwowy węzeł Spark Master in the documentation.

+0

Dzięki za wskazówki! – dOxxx

+0

@dOxxx Witaj! Mam nadzieję, że pomogło. –

Powiązane problemy