감독자를 통해 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