Zrozumieć Spark: Menedżera klastrów, węzłów Master I Driver

Po przeczytaniu tego Pytania, chciałbym zadać dodatkowe pytania:

  1. Menedżer klastra jest usługą długo działającą, na którym węźle jest uruchomiony?
  2. czy to możliwe, że węzły Master I Driver będą tą samą maszyną? Zakładam, że gdzieś powinna istnieć zasada mówiąca, że te dwa węzły powinny być różne?
  3. W przypadku awarii węzła Sterownika, kto jest odpowiedzialny za ponowne uruchomienie aplikacji? i co będzie dokładnie? czyli w jaki sposób węzły Master, Cluster Manager i Workers będą zaangażowane (jeśli tak się stanie) i w jakiej kolejności?
  4. podobnie jak poprzednie pytanie: w przypadku awarii węzła głównego, co dokładnie się stanie i kto jest odpowiedzialny za odzyskanie po awarii?
Author: mrsrinivas, 2016-01-11

2 answers

1. Menedżer klastra jest usługą długo działającą, na którym węźle jest uruchomiony?

Cluster Manager jest głównym procesem w trybie samodzielnym Spark. Można go uruchomić w dowolnym miejscu, wykonując ./sbin/start-master.sh, w YARNIE byłby to Menedżer zasobów.

2. Czy to możliwe, że węzły Master I Driver będą tą samą maszyną? Przypuszczam, że gdzieś powinna istnieć reguła stwierdzająca, że te dwa węzły powinny być inaczej?

Master jest na klaster, a {[2] } jest na aplikację. W przypadku klastrów samodzielnych/yarn Spark obsługuje obecnie dwa tryby wdrażania.

  1. w trybie klienta Sterownik jest uruchamiany w tym samym procesie co klient, który przesyła aplikację .
  2. w trybie klastra , jednak dla samodzielny sterownik jest uruchamiany z jednego z Workerów & dla yarn , jest uruchamiany wewnątrz master aplikacji node i proces klienta kończy się, gdy tylko spełni swoją odpowiedzialność za przesłanie aplikacji bez czekania na zakończenie aplikacji.

Jeśli aplikacja złożona z {[3] } w głównym węźle, zarówno Master I Driver będą na tym samym węźle . sprawdź rozmieszczenie aplikacji Spark na przodzie

3. W przypadku awarii węzła Sterownika, kto jest odpowiedzialny za ponowne uruchomienie aplikacji? A co dokładnie się stanie? tj. w jaki sposób węzły Master, Cluster Manager i Workers będą zaangażowane (jeśli tak się stanie) i w jakiej kolejności?

Jeśli sterownik zawiedzie, Wszystkie zadania executors zostaną zabite dla tej przesłanej/wyzwalanej aplikacji spark.

4. W przypadku awarii węzła głównego, co dokładnie się stanie i kto jest odpowiedzialny za odzyskanie po awarii?

Błędy węzłów głównych są obsługiwane na dwa sposoby.

  1. Standby Mistrzowie z ZooKeeper:

    / Align = "left"/, możesz uruchomić wiele wzorców w klastrze podłączonych do tego samego / Align = "left" / Jeden zostanie wybrany "liderem", a inni pozostać w trybie gotowości. Jeśli obecny przywódca umrze, inny Mistrz zostanie wybrany, odzyska stan starego mistrza, a następnie wznowi planowanie. Cały proces odzyskiwania (od momentu pierwszego lider upada) powinien wziąć od 1 do 2 minut. Zauważ, że to opóźnienie dotyczy tylko planowania nowych aplikacji – aplikacji, które były już uruchomione podczas Master failover nie ma to wpływu. sprawdź tutaj dla konfiguracji
  2. Odzyskiwanie pojedynczego węzła z lokalnym systemem plików:

    ZooKeeper to najlepszy sposób na osiągnięcie wysokiego poziomu produkcji dostępność, ale jeśli chcesz być w stanie ponownie uruchomić Master, jeśli to się skończy, tryb systemu plików może się tym zająć. Gdy aplikacje i pracownicy rejestrują, mają wystarczająco dużo Państwa napisane do podanego katalog, dzięki czemu można je odzyskać po ponownym uruchomieniu głównego proces. sprawdź tutaj dla conf i więcej szczegółów

 25
Author: mrsrinivas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-27 18:16:42

Menedżer klastra jest usługą długo działającą, na którym węźle jest uruchomiony?

Menedżer klastrów to tylko Menedżer zasobów, tj. procesorów i pamięci RAM, których SchedulerBackends używa do uruchamiania zadań. Menedżer klastrów nie robi nic więcej Apache Spark, ale oferuje zasoby, a po uruchomieniu Spark executors bezpośrednio komunikują się ze sterownikiem w celu uruchamiania zadań.

Możesz uruchomić samodzielny serwer główny wykonując:

./sbin/start-master.sh

Można uruchomić gdziekolwiek.

Aby uruchomić aplikację na klastrze Spark

./bin/spark-shell --master spark://IP:PORT

Czy to możliwe, że węzły Master I Driver będą tą samą maszyną? Zakładam, że gdzieś powinna istnieć zasada mówiąca, że te dwa węzły powinny być różne?

W trybie autonomicznym, po uruchomieniu komputera, uruchomiony zostanie JVM.Twój Spark Master uruchomi się i na każdej maszynie uruchomi się JVM i zarejestruje się w Spark Master. Oba są Menedżer zasobów.Po uruchomieniu aplikacji lub przesłaniu aplikacji w trybie klastra sterownik uruchomi się wszędzie tam, gdzie wykonasz ssh, aby uruchomić tę aplikację. Sterownik JVM skontaktuje się z mistrzem SparK dla executorów (Ex) i w trybie samodzielnym Worker uruchomi Ex. Tak więc Spark Master jest na klaster, A sterownik JVM na aplikację.

W przypadku awarii węzła Sterownika, kto jest odpowiedzialny za ponowne uruchomienie aplikacji? a co dokładnie się stanie? czyli jak mistrz węzły node, Cluster Manager i Workers będą zaangażowane (jeśli tak się stanie) i w jakiej kolejności?

Jeśli Ex JVM ulegnie awarii, Worker JVM uruchomi Ex, A gdy Worker JVM ill ulegnie awarii, Spark Master uruchomi je. W przypadku samodzielnego klastra Spark z trybem wdrażania klastra można również określić --Supervisor, Aby upewnić się, że sterownik zostanie automatycznie uruchomiony ponownie, jeśli nie powiedzie się z niezerowym kodem wyjścia.Spark Master uruchomi sterownik JVM

Podobnie jak w poprzednie pytanie: w przypadku awarii węzła głównego, co dokładnie się stanie i kto jest odpowiedzialny za odzyskanie po awarii?

Niepowodzenie na master spowoduje, że executorzy nie będą w stanie się z nim komunikować. Więc przestaną pracować. Niepowodzenie master spowoduje, że kierowca nie będzie mógł się z nim komunikować w celu uzyskania statusu zadania. Więc Twoja aplikacja nie powiedzie się. Utrata Master zostanie potwierdzona przez uruchomione aplikacje, ale w przeciwnym razie powinny one nadal działać mniej więcej tak, jak nic się nie stało z dwoma ważnymi wyjątkami:

1.aplikacja nie będzie w stanie zakończyć się w elegancki sposób.

2.jeśli Spark Master jest wyłączony, Worker spróbuje ponownie zarejestrować się z mistrzem. Jeśli to się nie powiedzie, pracownicy po prostu się poddadzą.

ReregisterWithMaster () -- ponownie zarejestrować się u aktywnego mistrza, z którym pracownik komunikuje się. Jeśli nie ma żadnego, oznacza to, że ten worker nadal uruchamia bootstrapping i nie nawiązał jeszcze połączenia z master, w takim przypadku powinniśmy ponownie zarejestrować się u wszystkich mistrzów. Ważne jest, aby ponownie zarejestrować się tylko z aktywnym mistrzem podczas awarii.pracownik bezwarunkowo próbuje ponownie zarejestrować się u wszystkich mistrzów, może pojawić się stan rasy.Błąd szczegółowy w SPARK-4592:

W tej chwili długo działające aplikacje nie będą mogły kontynuować przetwarzania, ale nadal nie powinno to skutkować natychmiastową awarią. Zamiast tego aplikacja będzie czekać na mistrza, aby wrócić on-line (odzyskiwanie systemu plików) lub kontakt od nowego lidera (Tryb Zookeeper), a jeśli tak się stanie, będzie kontynuował przetwarzanie.

 5
Author: Nayan Sharma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-15 10:30:33