YARN集群架构

          玩Hadoop的不知道YARN?这简直是天大的笑话!之前介绍Hadoop核心组件的时候(详见《Hadoop的“前世今生”》那篇博文)就曾提到过“YARN是实现了集群资源管理以及作业调度的框架”,那么本文就对YARN集群架构做进一步的介绍。

       

    YARN的全称是:Yet Another Resource Negotiator,YARN集群总体上是经典的Master/Slave架构,主要由ResourceManager(Master)、NodeManager(Slave)、ApplicationMaster、Container等几个组件构成。下面对各个组件进行介绍:

     1. ResourceManager

        以后台进程的形式运行,负责对集群资源进行统一管理和任务调度。主要职责如下:

  • 接收来自客户端的请求。
  • 启动和管理各个应用程序的ApplicationMaster。
  • 接收来自ApplicationMaster的资源申请,并为其分配Container。
  • 管理NodeManager,并接收来自NodeManager的资源和节点健康情况的汇报。       

    2. NodeManager

       集群中每个节点上的资源和任务管理器,以后台进程的形式运行。

    3. Task

       应用程序的具体执行任务。一个应用程序可能有多个任务,例如,一个MapReduce程序可以有多个Map任务和多个Reduce任务。

    4. Container

       封装了资源(CPU、内存等)。一个应用程序所需的Container分为两类:运行ApplicationMaster的Container和运行各类Task的Container。

    5. ApplicationMaster

       一个应用程序对应一个ApplicationMaster,在用户提交一个应用程序时,会启动一个ApplicationMaster实例,ApplicationMaster会启动所有需要的Task来完成它负责的应用程序,并且监视Task的运行状态和运行进度,重新启动失败的Task,等等。

       总结:ResourceManager管理整个集群;NodeManager管理集群中单个节点;ApplicationMaster管理单个应用程序(集群中可能同时有多个应用程序在运行,每个应用程序都有各自的ApplicationMaster)。

posted @   田攀攀的博客  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示