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基本组成结构
- resourceManager
- scheduler:将系统中的资源分配给各个正在运行的程序,资源分配的单位是container。不负责任何与具体应用相关的工作,比如监控或者跟踪任务的执行状态。
- Applications Manager(ASM):监控和追踪任务的执行状态。
- ApplicationMaster:
- 与RM调度器协商以获取资源
- 将得到的任务进一步分配给内部的任务
- 与NM通信以启动或停止任务
- 监控自己的子任务的运行状态,并在失败时重新申请资源执行
- NodeManager(NM)
- 定时向RM汇报本节点上资源使用情况
- 接受并处理来自AM的container启动/停止请求
- container:动态资源划分单位,并使用了cgroups进行资源隔离
本文采用创作共用保留署名-非商业-禁止演绎4.0国际许可证,欢迎转载,但转载请注明来自http://thousandhu.github.io,并保持转载后文章内容的完整。本人保留所有版权相关权利。
本文链接:http://thousandhu.github.io/2016/06/21/深入解析yarn架构设计与技术实现1-基本概念/