深入解析yarn架构设计与技术实现1-基本概念

hadoop代码结构

  • hadoop-common-project: hadoop基础库(rpc,metrics,counter等)
  • hadoop-mapreduce-project: mr框架
  • hadoop-hdfs-porject: hdfs的实现
  • hadoop-yarn-project: yarn的实现
    • hadoop-yarn-api: 给出了yarn内部涉及的四个主要rpc协议的java声明和ProtoBuffers定义
    • hadoop-yarn-common: yarn底层库的实现(事件库,服务库,状态机库,web界面库)
    • hadoop-yarn-applications: distributedshell和Unmanaged AM
    • hadoop-yarn-client: 封装了与yarn rpc协议交互相关的库
    • hadoop-yarn-server: 给出了包括ResourceManager, nodeManager,资源管理器等核心组件的实现。

YARN基本组成结构

  1. resourceManager
    • scheduler:将系统中的资源分配给各个正在运行的程序,资源分配的单位是container。不负责任何与具体应用相关的工作,比如监控或者跟踪任务的执行状态。
    • Applications Manager(ASM):监控和追踪任务的执行状态。
  2. ApplicationMaster:
    • 与RM调度器协商以获取资源
    • 将得到的任务进一步分配给内部的任务
    • 与NM通信以启动或停止任务
    • 监控自己的子任务的运行状态,并在失败时重新申请资源执行
  3. NodeManager(NM)
    • 定时向RM汇报本节点上资源使用情况
    • 接受并处理来自AM的container启动/停止请求
  4. container:动态资源划分单位,并使用了cgroups进行资源隔离

本文采用创作共用保留署名-非商业-禁止演绎4.0国际许可证,欢迎转载,但转载请注明来自http://thousandhu.github.io,并保持转载后文章内容的完整。本人保留所有版权相关权利。

本文链接:http://thousandhu.github.io/2016/06/21/深入解析yarn架构设计与技术实现1-基本概念/