一.Client提交模式
提交命令:
./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadooop2.6.0.jar 100
等價【默認為client】:
./spark-submit --master spark://node1:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadooop2.6.0.jar 100
執行流程:
分析:
standalone-client模式提交任務,會在客戶端看到task的執行情況和結果。當在客戶端提交多個application時,每個application會啟動自己的dirver,driver與集群worker有大量的通信,會造成客戶端網卡流量激增的問題,這種模式適用於測試而不適應於生產環境。
二.Cluster提交模式
提交命令:
./spark-submit --master spark://node1:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadooop2.6.0.jar 100
執行流程:
分析:
standalone-cluster模式提交任務driver會在集群中的隨機選擇一個worker上啟動,如果提交多個application,那么每個application的driver會分散到集群的各個worker節點,相當於將client模式的客戶端網卡流量激增問題分散到集群的各個節點中。這種模式適用於生產環境。