スーパーバイザーを通じて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