一.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模式的客户端网卡流量激增问题分散到集群的各个节点中。这种模式适用于生产环境。