YARN的运行流程

YARN执行流程

  1. YARN的简介

先来说一下什么叫做YARN,YARN是下一代的MapReduce(借助了面向函数式的编程 面向对象 --> new 对象 --> 对象操作 面向函数编程 对象都是实例化 --> 函数(有返回值的方法)的实现 计算模型 --> 它的写法是固定的 你就按照流程写 然后hadoop就能帮你实现计算过程 继承 Configured 实现 Tool --> ToolRunner ),即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的,通俗讲是跑任务的)

其核心思想:将MR1中资源管理和作业调用两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。
1)ResourceManager:负责整个集群的资源管理和调度;
2)ApplicationMaster:负责应用程序相关事务,比如任务调度、任务监控和容错等。

  1. 执行流程
    YARN的运行流程
    (1).用户向YARN中提交应用程序.
    (2).ResourceManager为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的ApplicationMaster。
    (3).ApplicationMaster首先向ResourceManager注册,目的是让用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束
    (4).ApplicationMaster向ResourceManager 的 scheduler申请和领取资源(通过RPC协议)。
    (5).ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。
    (6).NodeManager启动任务。
    (7).各个任务向ApplicationMaster汇报自己的状态和进度(通过RPC协议),以便让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
    (8).应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。