web-dev-qa-db-ja.com

スーパーバイザーを介してフォアグラウンドで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

スーパーバイザーにとっての課題は、これらのスクリプトがデーモンプロセスを起動してデタッチすることです。スーパーバイザーは、フォークなしでフォアグラウンドで実行されることを期待します。これまでのところ、上司にフォークは大丈夫だと説得したり、sparkフォークしないように説得したりする)努力は無駄になりました。もっと良い方法を見つけた人はいますか?ありがとう!

2
dannyman

私が推測した解決策 以前のバージョンのドキュメント

/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コマンドを介して起動すると、フォアグラウンドにとどまり、「スレーブ」の用語を永続させないという追加の満足感があります。

4
dannyman

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に記載されています

2
karlson