spark运行模式

spark StandAlone

standalone模式是spark集群自带的分布式集群模式,不依赖其他的资源调度框架

  1. standalone模式首先启动master

  2. 然后再启动worker,worker会与master建立连接;master可以不知道有多少个worker,但worker一定要知道master的地址,它们底层通过RPC通信,通信端口是7077,spark1.5之前使用akka,spark1.6支持两中akka和netty,spark2.0开始,使用netty通信

  3. worker向master注册,把这个worker的节点管理的资源信息汇报给master

  4. master把这个信息保存起来之后,向worker发送一个注册成功的消息

  5. worker接收到之后,定期向master发送心跳(报活)

  6. master内部有一个定时器,会定期检测超时的worker,如果worker超时,会把超时的worker移除

client

spark standalone提交到集群中,默认的模式为client模式,默认参数是  --deploy-mode client

此模式中,Driver是在SparkSubmit进程中

  1. Driver启动后会向master申请资源

  2. master维护workers的信息,它会根据各个worker的资源情况,决定在哪些worker上启动executor

  3. master在内部把需要的资源进行逻辑划分,默认是在满足条件的worker均匀划分的

  4. master把以后需要启动的executor的描述信息发给worker

  5. worker收到描述信息之后,会启动一个子进程(executor)

  6. executor向driver反向注册

  7. 在driver里写spark程序,构建DAG,切分stage,一个stage对应一个taskSet,一个taskSet里面的计算逻辑都是相同的,只是处理数据不同,一个taskSet里面有多少个task,取决于这个stage最后一个RDD有多少个分区.然后它会先提交前面的stage,在提交后面的stage

cluster

 --deploy-mode cluster

Driver在集群中的某一个worker中

  1. cluster模式中,submit向master申请资源,把主类,jar包,需要的资源发给master,submit的任务就结束了

  2. master先只和一个worker通信,让worker启动DriverWapper

  3. 然后与master通信,让master通知worker启动executor

  4. executor启动后向DriverWapper注册

  5. 之后构建DAG,划分stage...

spark ON YARN

client

driver是在任务提交的客户端中启动

cluster

driver是在集群节点中随机选取启动

  1. client向RM申请资源,返回一个applicationId
  2. client上传spak jars下的包,自己写的jar和配置
  3. RM随机找一个资源充足的NM
  4. 然后让NM从hdfs上下载jar包和配置,启动AM
  5. AM向RM申请资源
  6. RM中的ResourceScheduler找到符合条件的NM,将NM信息返回给AM
  7. AM和返回的NM通信
  8. NM从hdfs下载依赖
  9. NM启动Executor
  10. Executor启动之后反向向AM注册
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值