YARN Cluster

在 YARN-Cluster 模式中,当用户向 YARN 中提交一个应用程序后,YARN 会分两个阶段运行该应用程序:

第一个阶段是把 Spark 的 Driver 作为一个 ApplicationMaster 在 YARN 集群中先启动;

第二个阶段是由 ApplicationMaster 创建应用程序,然后为它向 ResourceManager 申请资源,并启动 Executor 来运行Task,同时监控它的整个运行过程,直到运行完成。

具体流程如下:

1.在YARN Cliuster 模式下,Driver运行在ApplicationMaster中。程序启动后会和ResourceManager 通讯申请ApplicationMaster

2.ResourceManager 收到请求后,通过 ResourceScheduler 选择一台 NodeManager 分配一个 Container,在 Container 中开启 ApplicationMaster 进程;同时在 ApplicationMaster 中初始化 Driver;

3.ApplicationMaster 向 ResourceManager 注册,这样用户可以直接通过 ResourceManage 查看应用程序的运行状态,然后

它将采用轮询的方式通过 RPC 协议为各个任务申请资源,并监控它们的运行状态直到运行结束;

4.一旦 ApplicationMaster 申请到资源(也就是 Container)后,便与对应的 NodeManager 通信,在 NodeManager 的 Container 中启动 CoarseGrainedExecutorBackendCoarseGrainedExecutorBackend 启动后会向 Driver 中的 SparkContext 反向注册并申请 Task。这一点和 Standalone 模式一样,只不过 SparkContext Spark Application 中初始化时,使用 CoarseGrainedSchedulerBackend 配合 YarnClusterScheduler 进行任务的调度,其中YarnClusterScheduler 只是对 TaskSchedulerImpl 的一个简单包装,增加了对 Executor 的等待逻辑等;

5.ApplicationMaster 中的 SparkContext 分配 Task 给 CoarseGrainedExecutorBackend 执行,CoarseGrainedExecutorBackend运行 Task 并向 ApplicationMaster 汇报运行的状态和进度,方便 ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;

6.应用程序运行完成后,ApplicationMaster 向 ResourceManager 申请注销并关闭自己。

7.该模式下只能通过 YARN 查看日志。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值