Spark on Yarn的运行原理
2018-03-23 10:23
721 查看
一、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-client模式下
(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。相关文章推荐
- Spark on Yarn的运行原理
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行(可以使用)
- spark on yarn(Job的运行流程,可以对比mapreduce的yarn运行)
- Spark on YARN集群模式作业运行全过程分析
- Spark on YARN客户端模式作业运行全过程分析
- Spark on YARN cluster & client 模式作业运行全过程分析
- spark on yarn 的运行模式
- Spark on YARN集群模式作业运行全过程分析
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行
- Spark on YARN两种运行模式介绍
- 1、Spark的StandAlone模式原理和安装、Spark-on-YARN的理解
- Spark on YARN客户端模式作业运行全过程分析
- 运行 Spark on YARN
- spark on yarn 两种运行模式(client 、cluster)对比
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行
- Spark on Yarn解密及运行流程
- Spark -6:运行Spark on YARN
- Spark on YARN两种运行模式
- spark官方文档之——Running Spark on YARN YARN上运行SPARK
- spark-sql master on yarn 模式运行 select count(*) 报错日志