RMContainer是ResourceManager中用于维护一个Container生命周期的数据结构,它的实现是RMContainerImpl,该类维护了一个Container状态机,记录了一个Container可能存在的各个状态以及导致状态间转换的事件,本文介绍了该状态机。

节点健康状况检测是YARN为每个NodeManager提供的机制,通过该机制,NodeManager可通过心跳机制将节点健康状况实时汇报给ResourceManager,而ResourceManager则会根据每个NodeManager的健康状况适当调整分配的任务数目。本文介绍了NodeManager如何实现节点健康状况检测。

LocalizedResource是NodeManager中用于维护一种”资源”生命周期的数据结构,它维护了一个状态机,记录了“资源”可能存在的各个状态以及导致状态间转换的事件,本文介绍了该状态机。

ResourceManager中的对象均被封装成服务和事件处理器,其中,封装成服务是为了统一管理,而所有事件处理器处理来自中央总调度器分配的事件,总调度器将各个服务发送出来的事件按照事件类型分配给对应的事件处理器,如此循环,构成了ResourceManager的整体架构。本文介绍了RM中的服务与事件处理器。

在YARN中,一个ApplicationMaster需要占用一个container,该container可能位于任意一个NodeManager上,这给ApplicationMaster测试带来很大麻烦,为了解决该问题,YARN引入了一种新的ApplicationMaster—Unmanaged AM,这种AM运行在客户端,不再由ResourceManager启动和销毁。本文介绍了Unmanaged AM工作原理。

为了更高效地运行存在依赖关系的作业(比如Pig和Hive产生的MapReduce作业),减少磁盘和网络IO,Hortonworks开发了DAG计算框架Tez。Tez是从MapReduce计算框架演化而来的通用DAG计算框架,可作为MapReduceR/Pig/Hive等系统的底层数据处理引擎,它天生融入Hadoop 2.0中的资源管理平台YARN,且由Hadoop 2.0核心人员精心打造,势必将会成为计算框架中的后起之秀。本文将重点介绍Tez的设计动机、优化机制和未来发展。