`

YARNRunner的运行原理总结

阅读更多
之前看了那么些源码, 大致对整个Yarn的运行过程有了一个了解, 总结一下

首先每个Yarn集群都有一个Resource Manager 以及若干个NodeManager

Resource Manager主要有两个对象, 一个就是Scheduler, 还有一个就是Applications Manager ASM

Scheduler有FIFO和Fair等, 主要作用就是根据Node Manager的资源使用状况来分配container。
当然还有一种Uber模式, 具体就是满足7个条件后就会只用一个container去跑整个Job

Applications Manager主要是管理所有的Application Master的, AM创建后就和ASM注册, 后面有各种资源的请求都会通过ASM来进行

NodeManager上面会运行AppMaster, 其实AM就是一个特殊的Container, Job提交后会先创建一个AM的container, 之后通过这个AM Container去协调整个Job的运行。
NM会和Resource Manger进行心跳, 这样RM就知道每个NM的资源状况, 当有container的申请的时候就会找对应的NM去分配container, 其顺序为:
1.data所在的NM优先
2.如果1没有, 那么找同一个机架 (rack)上的NM
3.如果1,2 都没有, 那么就在集群上面随机寻找一个

ApplicationMaster是为每个Job创建的一个管理container。 他对这个Job的情况进行资源申请, container的管理, 任务的管理(和NM通信进行启动停止重跑等)
他也会和RM通信, 去要求分配各种资源

container本身的话其实就是在Node Manager上面的一个资源包, 由 Resource Manager来分配由AM来启动, 在NM上面运行。

整个YarnRunner的运行过程用下面的图来说明一下 (借用网络用图):


1.Client 提交Job Resource Manager接收
2.Resource Manager启动第一个Container--Application Master, 用来管理整个Job 以及后续的资源申请,任务控制
3.Application Master启动后向ASM注册
4.AM计算所需要的资源量, 通过ASM向RM进行申请
5.RM提供所有container的location后, AM去要求NM启动所有的container
6.NM启动container
7.每个任务向AM汇报运行情况与状态
8.Job运行完后AM向ASM注销关闭
分享到:
评论

相关推荐

    YARNRunner.java

    hadoop本地模式执行依赖的类YARNRunner.java,安全无病毒,放心可使用!

    NativeIO和YARNRunner修改后的源码

    用eclipse本地提交Hadoop任务(如WordCount)到服务器上跑的时候,会报错: Stack trace: ExitCodeException...这是hadoop本身的一个bug,可以通过修改NativeIO和YARNRunner的源码并替换解决。这是这两个.java的zip包。

    windows eclipse 运行wordcount连接linux hadoop2.8 NativeIO YARNRunner 完项目 源码

    在本项目中,我们主要关注的是如何在Windows环境下使用Eclipse IDE运行一个WordCount程序,该程序连接到Linux上的Hadoop 2.8集群,并利用NativeIO和YARNRunner进行分布式处理。以下是对这些关键概念的详细解释: 1....

    hadoop 源码解析_yarn源码解析

    MR(MapReduce)程序提交到客户端所在的节点,由 YarnRunner 运行。这个过程中,YarnRunner 负责将 MR 程序提交到 ResourceManager,以获取资源和执行任务。 2. ResourceManager ResourceManager 是 Yarn 的核心...

    DongTL#bigdata_interview#6-YARN的作业提交流程1

    YARN的作业提交流程MapReduce程序提交到YarnRunner所在节点YarnRunner向ResourceManager申请一个appliationR

    mapreduce运行过程(个人见解如有错误希望大神指导).pdf

    如果作业是提交给YARN运行的,该Cluster对象的代理对象为YarnRunner;如果是本地运行的MapReduce模拟器,代理对象为LocalJobRunner。 2. JobSubmitter通过代理对象向ResourceManager申请提交一个application,...

    实验五 MapReduce实验.docx

    在编写 MapReduce 程序时,不需要自己开发 MRAppMaster 和 YARNRunner,因为 Hadoop 已经默认提供通用的 YARNRunner 和 MRAppMaster 程序,大部分情况下只需要编写相应的 Map 处理和 Reduce 处理过程的业务程序即可...

    大数据课程-Hadoop集群程序设计与开发-5.Yarn资源调度器_lk_edit.pptx

    【Yarn资源调度器】是Hadoop大数据处理框架的核心组件之一,主要负责集群资源的管理和分配,确保高效、公平地运行各种计算任务。本课程详细介绍了Yarn的基本架构、工作机制、调度器及调度算法,以及如何进行实际操作...

    第5章Yarn.pdf第5章Yarn.pdf第5章Yarn.pdf第5章Yarn.pdf

    【标题】: Hadoop YARN ...总结来说,YARN通过其独特的架构和调度策略,实现了对集群资源的有效管理和优化,使得Hadoop能够处理更复杂的计算任务,同时支持多种计算框架的并存,是现代大数据处理的关键基础设施之一。

    19_尚硅谷大数据之MapReduce_Yarn1

    2. YarnRunner 向 RM 申请一个 Application,并获得一个唯一的 application_id。 3. 应用程序将所需的资源(包括 jar 包、配置文件等)提交到 HDFS 的特定目录。 4. MRAppMaster 向 RM 申请运行,并等待 RM 初始化 ...

    mapreduce八股文

    - YARNRunner接收作业并在某个NodeManager上启动ApplicationMaster。 2. **资源申请与分配** - ApplicationMaster向ResourceManager申请足够的资源来运行MapTasks。 - ResourceManager分配资源后,...

    windows下hadoop本地测试需要修改的源码

    将两个类org.apache.hadoop.io.nativeio.NativeIO.java,org.apache.hadoop.mapred.YARNRunner.java 放到工程的src下,两个类的package不修改,否则覆盖不掉原来的hadoop的那两个类

    hadoop_win7_32位环境配置

    在YARNRunner.java的源码中,你可能需要修改AM运行命令的设置。在第390行左右,将`Environment.JAVA_HOME.$() + "/bin/java"`更改为`"$JAVA_HOME/bin/java"`,并添加一个方法来处理路径分隔符的替换,确保环境变量在...

    我的面试题

    1. **获取新的 Job ID**:客户端通过 `YarnRunner` 调用 `getnewjobid()` 方法向 `ResourceManager`(RM)发送提交作业请求。`ResourceManager` 检查作业的输出路径是否已存在,如果存在则抛出异常。 2. **初始化...

    my document

    1. **获取 Job ID**:客户端通过 `YarnRunner` 类调用 `getNewJobId()` 方法向 `ResourceManager` 发送提交作业请求。`ResourceManager` 检查作业输出路径是否已存在,不存在则初始化存放 Job 相关资源的路径,并...

Global site tag (gtag.js) - Google Analytics