Spark on Yarn的运行原理

一、YARN是集群的资源管理系统

1、ResourceManager:负责整个集群的资源管理和分配。

2、ApplicationMaster:YARN中每个Application对应一个AM进程,负责与RM协商获取资源,获取资源后告诉NodeManager为其分配并启动Container。

3、NodeManager:每个节点的资源和任务管理器,负责启动/停止Container,并监视资源使用情况。

4、Container:YARN中的抽象资源。


二、SPARK的概念

1、Driver:和ClusterManager通信,进行资源申请、任务分配并监督其运行状况等。

2、ClusterManager:这里指YARN。

3、DAGScheduler:把spark作业转换成Stage的DAG图。

4、TaskScheduler:把Task分配给具体的Executor。


三、SPARK on YARN

3.1、yarn-cluster模式下


(1)ResourceManager接到请求后在集群中选择一个NodeManager分配Container,并在Container中启动ApplicationMaster进程;

(2)在ApplicationMaster进程中初始化sparkContext;

(3)ApplicationMaster向ResourceManager申请到Container后,通知NodeManager在获得的Container中启动excutor进程;

(4)sparkContext分配Task给excutor,excutor发送运行状态给ApplicationMaster。

3.2、yarn-clinet模式下


(1)ResourceManager接到请求后在集群中选择一个NodeManager分配Container,并在Container中启动ApplicationMaster进程;

(2)driver进程运行在client中,并初始化sparkContext;

(3)sparkContext初始化完后与ApplicationMaster通讯,通过ApplicationMaster向ResourceManager申请Container,ApplicationMaster通知NodeManager在获得的Container中启动excutor进程;

(4)sparkContext分配Task给excutor,excutor发送运行状态给driver。

3.3、yarn-cluster与yarn-client的区别:

它们的区别就是ApplicationMaster的区别,yarn-cluster中ApplicationMaster不仅负责申请资源,并负责监控Task的运行状况,因此可以关掉client;

yarn-client中ApplicationMaster仅负责申请资源,由client中的driver来监控调度Task的运行,因此不能关掉client。



  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值