美文网首页
一张图读懂yarn

一张图读懂yarn

作者: studyz | 来源:发表于2016-07-26 09:52 被阅读1744次

    yarn即MapReduce 2.0 。相比MR 1.0,yarn架构中的各个角色职责单一,分工明确,在性能,稳定性上有所提升。

    yarn架构图

    在yarn中有如下几个概念:

    • ResourceManager
    • NodeManager
    • Secheduler
    • ApplicationManager
    • ApplicationMaster
    • Container

    ResourceManager和NodeManager对应实体的物理节点,分别映射到yarn的主节点和计算节点。

    1、ResourceManager

    ResourceManager节点的功能由Secheduler和ApplicationManager协调完成。

    其中ApplicationManager职责如下

    1. 负责接收客户端提交的job
    2. 判断启动该job的ApplicationMaster所需的资源
    3. 监控ApplicationMaster的状态,在其失败的时候重启ApplicationMaster

    Secheduler负责仅仅提供一个调度算法调度ApplicationManager提交的任务,他不提供失败重启和任何监控功能。调度算法可以自定义。yarn针对不同的场景提供了三种Secheduler实现:FIFO Scheduler ,Capacity scheduler,Fair Scheduler(请参照调度器详解)。

    2、NodeManager

    NodeManager对应集群中的计算节点,但是他的功能仅仅只是抽象本节点的资源(如cpu,内存,磁盘,网络)并且定时向ResourceManager的Secheduler汇报。

    Container是一组资源的集合,一个container一般用来执行一个task。

    ApplicationMaster是job的生命周期的管理者,负责整个job执行过程的监控。

    前面提到ApplicationManager会判断启动ApplicationMaster所需的资源,之后提交给Secheduler,Secheduler将这些资源封装成一个Container,然后根据调度算法在某一个NodeManager上启动ApplicationMaster(当然它会消耗掉该NodeManager的资源)。

    ApplicationMaster启动之后会计算job所需要的资源,并且向Secheduler申请这些资源,NodeManager分配完成这些任务的container之后,会由ApplicationMaster来监控这些container的状态,如果失败就回收资源重新申请,如果成功就释放资源,当任务执行完成之后汇报Secheduler,Secheduler回收资源并且向ResourceManager返回执行结果,整个任务处理完毕。

    相关文章

      网友评论

          本文标题:一张图读懂yarn

          本文链接:https://www.haomeiwen.com/subject/ffcddttx.html