Spark三种提交任务模式

目录

1.Standalone

2.Yarn-Cluster

3.Yarn-Client


1.Standalone

 

任务提交流程:

  1. Spark-Submit 提交任务给 Master;

  2. Master 收到任务请求后,通过 LaunchDriver 向合适的 Worker 请求启动 Driver;

  3. Worker 收到请求后启动 Driver;

  4. Driver 启动后向 Master 注册用户App信息;

  5. Master 收到 App 信息后根据资源的情况向 Worker 发送 launchExecutor 启动 Executor;

  6. Worker 收到 Master 的请求后,启动相应的 Executor;

  7. Executor 启动后负责与 Driver 通信,执行相关任务;

2.Yarn-Cluster

任务提交流程:

  1. Client 向 RM 提交请求,并上传 jar 包到 HDFS 上;这期间包括四个步骤:

    1. 连接到 RM;

    2. 从 RM ASM(Applications Manager )中获得 metric、queue、resource 等信息;

    3. 上传 app jar and spark-assembly jar;

    4. 设置运行环境和 container 上下文(launch-container.sh等脚本);

  2. ASM 向 Scheduler 申请空闲 container;

  3. Scheduler 向 ASM 返回空闲 container 信息(NM等);

  4. RM(ASM)根据返回信息向 NM 申请资源;

  5. NM 分配创建一个 container 并创建 Spark Application Master(AM),此时 AM 上运行的是 Spark Driver(每个 SparkContext 都有一个 AM);

  6. AM 启动后,和 RM(ASM) 通讯,请求根据任务信息向 RM(ASM) 申请 container 来启动 Executor;

  7. RM(ASM) 将申请的资源信息返回给 AM;

  8. AM 根据返回的资源信息请求对应的 NM 分配 container 来启动 Executor;

  9. NM 收到请求会启动相应的 container 并启动 Executor;

  10. Executor 启动成功后,反向向 AM 注册;

  11. Executor 和 AM 交互完成任务;

  12. 后续的 DAGScheduler、TaskScheduler、Shuffle等操作都是和 Standaloe 一样;

  13. 等到所有的任务执行完毕后,AM 向 ASM 取消注册并释放资源;

3.Yarn-Client

yarn-client模式下,Driver运行在Client上,通过ApplicationMaster向RM获取资源。本地Driver负责与所有的executor container进行交互,并将最后的结果汇总。Driver 是运行在本地客户端,它的 AM 只是作为一个 Executor 启动器,并没有 Driver 进程。而且 Executor启动后是与 Client 端的 Driver 进行交互的,所以 Client 如果挂了 任务也就挂了。

参考: https://www.cnblogs.com/lillcol/p/11159114.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值