2015-06-22 14 views
11

Uświadomiłem sobie, że iskierka główna nie reaguje, gdy zabijam zookeepera (oczywiście przypisałem zadanie wyborów lidera do zookeepera). Poniżej znajduje się dziennik błędów, który widzę w węźle Master Spark. Czy masz jakieś sugestie, aby go rozwiązać?Wybór nowego lidera zookeepera powoduje wyłączenie Sparka Master

15/06/22 10:44:00 INFO ClientCnxn: Unable to read additional data from 
> server sessionid 0x14dd82e22f70ef1, likely server has closed socket, 
> closing socket connection and attempting reconnect 

15/06/22 10:44:00 
> INFO ClientCnxn: Unable to read additional data from server sessionid 
> 0x24dc5a319b40090, likely server has closed socket, closing socket 
> connection and attempting reconnect 

15/06/22 10:44:01 INFO 
> ConnectionStateManager: State change: SUSPENDED 

15/06/22 10:44:01 INFO 
> ConnectionStateManager: State change: SUSPENDED 

15/06/22 10:44:01 WARN 
> ConnectionStateManager: There are no ConnectionStateListeners 
> registered. 

15/06/22 10:44:01 INFO ZooKeeperLeaderElectionAgent: We 
> have lost leadership 

15/06/22 10:44:01 ERROR Master: Leadership has 
> been revoked -- master shutting down. 
+0

Jakie są dokładne parametry konfiguracyjne dla spark.deploy.recoveryMode, spark.zookeeper.url? czy uruchamiasz z --supervise? Jaki jest twój menedżer klastra? – huitseeker

Odpowiedz

3

Jest to oczekiwane zachowanie. Trzeba założyć „n” liczbę mistrzów i trzeba podać URL Heca w całej env.sh głównego

SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1:2181,zk2:2181" 

Zauważ, że zookeeper utrzymuje kworum. Oznacza to, że musisz mieć nieparzystą liczbę zookeeperów i tylko wtedy, gdy kworum jest utrzymywane, klaster zookeepera będzie wyższy. Ponieważ iskra zależy od zookeepera, oznacza to, że klaster iskier nie będzie działał aż do utrzymania kworum zookeepera.

Po skonfigurowaniu dwóch (n) wzorników i usunięciu zookeepera, bieżący wzorzec zostanie opuszczony, a nowy wzorzec zostanie wybrany, a wszystkie węzły robocze zostaną dołączone do nowego wzorca.

Trzeba rozpoczął swój pracownik dając

./start-slave.sh spark://master1:port1,master2:port2 

Trzeba poczekać 1-2 minuty !! zauważyć to przełączenie awaryjne.