スーパーバイザーを介して起動する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フォークしないように説得したりする)努力は無駄になりました。もっと良い方法を見つけた人はいますか?ありがとう!
私が推測した解決策 以前のバージョンのドキュメント :
/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
コマンドを介して起動すると、フォアグラウンドにとどまり、「スレーブ」の用語を永続させないという追加の満足感があります。
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
に記載されています