spark在yarn上的運行模式(cluster模式和client模式)
1.cluster模式
官網案例計算PI
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
/export/servers/spark/examples/jars/spark-examples_2.11-2.0.2.jar \
10
關閉虛擬機內存檢查(避免虛擬機內存不足時,無法運行)
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
2.client模式
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
--driver-memory 1g \
--executor-memory 512m \
--executor-cores 1 \
/export/servers/spark/examples/jars/spark-examples_2.11-2.0.2.jar \
10
spark-shell必須使用client模式
spark-shell –master yarn –deploy-mode client在本地模式下不能開啓yarn並且提交只能添加資源設置
spark-submit
--master yarn \
--deploy-mode client \
--driver-memory 1g \
--executor-memory 512m \
--executor-cores 1 \
3.兩種模式的區別
cluster模式:Driver程序在YARN中運行,應用的運行結果不能在客戶端顯示,所以最好運行那些將結果最終保存在外部存儲介質(如HDFS、Redis、Mysql)而非stdout輸出的應用程序,客戶端的終端顯示的僅是作爲YARN的job的簡單運行狀況。
client模式:Driver運行在Client上,應用程序運行結果會在客戶端顯示,所有適合運行結果有輸出的應用程序(如spark-shell)