在Hadoop 0.20.x版本或者更早的版本,Hadoop采用了平级队列组织方式,在这种组织方式中,管理员可将用户分到若干个扁平队列中,在每个队列中,可指定一个或几个队列管理员管理这些用户,随着Hadoop应用越来越广泛,有用户提出需支持层级队列组织方式。

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的设计动机、优化机制和未来发展。

Hadoop2.0中已经将Protocol buffer作为默认的序列化/反序列化框架,原来的自己实现的基于Writable的方式已经被淘汰了。来自Cloudera的Aaron T. Myers在邮件中这样说的“since PB can provide support for evolving protocols in a compatible fashion”,本文将尝试以实例的形式解释Aaron T. Myers这句话的含义,即引入PB的好处。