Документ https://spark.apache.org/docs/1.1.0/submitting-applications.html
описывает режим развертывания как:
--deploy-mode: Whether to deploy your driver on the worker nodes (cluster) or locally as an external client (client) (default: client)
Используя эту диаграмму fig1
в качестве руководства (взято из http://spark.apache.org/docs/1.2.0/cluster-overview.html):
Если я начинаю работу Spark:
./bin/spark-submit \
--class com.driver \
--master spark://MY_MASTER:7077 \
--executor-memory 845M \
--deploy-mode client \
./bin/Driver.jar
Тогда Driver Program
будет MY_MASTER
, как указано в fig1
MY_MASTER
Если вместо этого я использую --deploy-mode cluster
, тогда Driver Program
будет использоваться совместно с рабочими узлами? Если это правда, значит ли это, что поле Driver Program
в fig1
может быть отброшено (поскольку оно больше не используется), поскольку SparkContext
также будет использоваться совместно с рабочими узлами?
Какие условия следует использовать cluster
вместо client
?