2016-03-15 2 views
1

I`m с помощью искры 1.2.1 на трех узлах, которые работают три рабочих с конфигурацией ведомой и запустить ежедневно рабочих мест с помощью:Спарк обеспечения высокой доступности

./spark-1.2.1/sbin/start-all.sh 

//crontab configuration: 
./spark-1.2.1/bin/spark-submit --master spark://11.11.11.11:7077 --driver-class-path home/ubuntu/spark-cassandra-connector-java-assembly-1.2.1-FAT.jar --class "$class" "$jar" 

Я хочу, чтобы доступно искра ведущих и ведомых работников во все времена, и даже если он не работает, мне нужно перезапустить его, как сервис (как, например, cassandra).

Есть ли способ сделать это?

EDIT:

Я посмотрел в start-all.sh сценарий, и он содержит только настройки для start-master.sh сценария и start-slaves.sh сценария. Я попытался создать супервизора файл конфигурации для него и только получить следующие ошибки:

11.11.11.11: ssh: connect to host 11.11.11.12 port 22: No route to host 
11.11.11.13: org.apache.spark.deploy.worker.Worker running as process 14627. Stop it first. 
11.11.11.11: ssh: connect to host 11.11.11.12 port 22: No route to host 
11.11.11.12: ssh: connect to host 11.11.11.13 port 22: No route to host 
11.11.11.11: org.apache.spark.deploy.worker.Worker running as process 14627. Stop it first. 
11.11.11.12: ssh: connect to host 11.11.11.12 port 22: No route to host 
11.11.11.13: ssh: connect to host 11.11.11.13 port 22: No route to host 
11.11.11.11: org.apache.spark.deploy.worker.Worker running as process 14627. Stop it first. 
+1

вам понадобится кластер мезо или хроносов или что-то подобное – eliasah

ответ

1

Есть инструменты, такие как Monit и супервизор (или даже Systemd), которые могут контролировать и перезапускать неудачные процессы.

+0

, но spark start-all.sh - это сценарий bash, который запускает ведомые устройства, если я буду использовать диспетчер для его поддержания - он не будет знать о подчиненном процессы, которые он открыл, и если он не работает, и супервизор попытается установить его снова - у меня будут ведомые потоки, все еще запущенные ... – Rada

+2

Не используйте start -all.sh then)) То, что я, вероятно, сделаю, это управлять стартом/остановка искровых демонов на каждом узле независимо. Spark имеет скрипт spark-daemon.sh, чтобы запустить определенный процесс (мастер или рабочий) на определенном узле. Таким образом, у вас будет супервизор, установленный на каждом узле, и он будет управлять искровыми демонами только на этом конкретном узле. – facha

Смежные вопросы