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.
Czy wykonujesz zadanie w trybie klienta lub w trybie klastra? Ponadto, który menedżer klastra działa? –
Zadałem podobne pytanie tutaj http://stackoverflow.com/q/35815386/6022341 –
@YuvalItzchakov Używam sterownika w trybie klienta. – dOxxx