2016-03-15 68 views
1

我真的使用火花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一樣)。

有沒有辦法做到這一點?

編輯:

我看着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

你需要一個mesos或者chronos集羣,或者類似的東西 – eliasah

回答

1

有喜歡的monit和主管(甚至systemd)工具,可以監視和重新啓動失敗的進程。

+0

但是spark start-all.sh是一個bash腳本來運行slave,如果我用supervisor來保持它 - 它不會知道slave它已經打開的進程,如果它失敗,主管嘗試重新設置它 - 我將有奴隸線程仍在運行... – Rada

+2

不要使用start-all.sh然後))我可能會做的是管理開始/獨立地停止每個節點上的spark守護進程。 Spark有一個spark-daemon.sh腳本來啓動特定節點上的特定進程(主進程或工作進程)。所以,你可以在每個節點上安裝supervisord,它只會在特定節點上管理spark守護進程。 – facha