Spark on yarn 任务提交流程

Spark on YARN是spark运行在yarn上,其中有yarn-client和yarn-cluster两种模式,它们的区别在于Driver运行的结点位置

  • yarn-client 模式
    yarn-client模式下的spark的Driver运行在客户端,适用于交互、调试,希望立即看到app的输出。
  • yarn-cluster 模式
    yarn-cluster模式下的spark的Driver运行在Resource Manager(以下简称RM)启动的Applications Manager(以下简称AM)下,这个模式适用于生产环境,本次介绍的任务提交流程也是基于这个模式的。

看一下概念图

在这里插入图片描述

  1. App Submit
    首先我们写好的代码经过打包成jar文件,然后通过spark client提交给yarn的RM。RM是yarn的资源管理器,负责调度集群的资源。
  2. 启动Driver
    Spark App被提交到RM后,RM会在集群的一个节点上启动AM以及Driver。
  3. 申请资源
    AM向RM申请资源,提供spark程序所需的资源。
  4. 返回资源列表
    RM向AM返回自己的资源列表。
  5. 创建执行器对象Executor
    为了平衡压力,AM会在集群的其他NodeManager启动Executor,由于在YARN及群中,要实现计算框架可插拔,不会直接在NM创建Executor,要通过Container容器创建执行器Executor。因为NM还要执行其他计算框架的任务,所以抽象了一个Container容器来创建特定的计算框架的任务。
  6. 反向注册
    Executor创建完成后要向Driver注册,告诉Driver Executor已经创建成功。
  7. 分解任务,调度任务
    Driver等待所有Executor创建好后(上图只创建了一个Executor)就会把客户端提交上来的任务进行分解,然后分发到所有的Executor中去。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值