Supervisorで前景からSparkを起動

Supervisorで前景からSparkを起動

スーパーバイザーを通じてSparkクラスターが起動しました。抜粋:

/etc/supervisor/conf.d/spark_master.conf:
command=./sbin/start-master.sh
directory=/opt/spark-1.4.1

/etc/supervisor/conf.d/spark_worker.conf:
command=./sbin/start-slave.sh spark://spark-master:7077
directory=/opt/spark-1.4.1

監督者の課題は、これらのスクリプトがデーモンを起動および分離することです。監督者は、フォークなしでフォアグラウンドでジョブを実行したいと考えています。これまで監督者にフォークしても大丈夫だと説得したり、スパークにフォークしないように説得しようとする私の努力は成功しませんでした。より良い方法を見つけた人はいますか?ありがとうございます!

答え1

私が推論した解決策以前のバージョンの文書:

/etc/supervisor/conf.d/spark_master.conf:
command=/opt/spark-1.4.1/bin/spark-class org.apache.spark.deploy.master.Master
directory=/opt/spark-1.4.1

/etc/supervisor/conf.d/spark_worker.conf:
command=/opt/spark-1.4.1/bin/spark-class org.apache.spark.deploy.worker.Worker spark://spark-master:7077
directory=/opt/spark-1.4.1

bin/spark-classコマンドによる実行はフォアグラウンドに残り、「スレーブ」という用語を持続しないため、追加の満足感を与えます。

答え2

Spark 2.1から開始(および今回提出してください) 環境変数を設定し、スーパーバイザに提供された起動SPARK_NO_DAEMONIZEスクリプトを直接呼び出すことができます。$SPARK_HOME/sbin/start-master.sh$SPARK_HOME/sbin/start-slave.sh

これ$SPARK_HOME/conf/spark-env.sh.templateはとに記録されています。$SPARK_HOME/sbin/spark-daemon.sh

関連情報