Standalone模式两种提交任务方式

1. Standalone-client提交任务方式

提交命令

./spark-submit
 --master spark://node1:7077 
 --class org.apache.spark.examples.SparkPi 
 ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 
 1000

或者

./spark-submit
 --master spark://node1:7077
  --deploy-mode client 
  --class org.apache.spark.examples.SparkPi 
  ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 
  100

执行原理图解
在这里插入图片描述
执行流程

  1. client模式提交任务后,会在客户端启动Driver进程。
  2. Driver会向Master申请启动Application启动的资源。
  3. 资源申请成功,Driver端将task发送到worker端执行。
  4. worker将task执行结果返回到Driver端。

总结
client模式适用于测试调试程序。Driver进程是在客户端启动的,这里的客户端就是指提交应用程序的当前节点。在Driver端可以看到task执行的情况。生产环境下不能使用client模式,是因为:假设要提交100个application到集群运行,Driver每次都会在client端启动,那么就会导致客户端100次网卡流量暴增的问题。

2.Standalone-cluster提交任务方式

提交命令

./spark-submit 
--master spark://node1:7077 
--deploy-mode cluster
--class org.apache.spark.examples.SparkPi 
../lib/spark-examples-1.6.0-hadoop2.6.0.jar 
100

执行原理图解在这里插入图片描述
执行流程
3. cluster模式提交应用程序后,会向Master请求启动Driver.
4. Master接受请求,随机在集群一台节点启动Driver进程。
5. Driver启动后为当前的应用程序申请资源。
6. Driver端发送task到worker节点上执行。
7. worker将执行情况和执行结果返回给Driver端。

总结
Driver进程是在集群某一台Worker上启动的,在客户端是无法查看task的执行情况的。假设要提交100个application到集群运行,每次Driver会随机在集群中某一台Worker上启动,那么这100次网卡流量暴增的问题就散布在集群上。

总结Standalone两种方式提交任务,Driver与集群的通信包括:

  1. Driver负责应用程序资源的申请
  2. 任务的分发。
  3. 结果的回收。
  4. 监控task执行情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值