Hadoop 2.0内核由三个分支组成,分别是HDFS、MapReduce和YARN,而Hadoop生态系统中的其他系统,比如HBase、Hive、Pig等,均是基于这三个系统开发的。截止本文发布,Hadoop 2.0的这三个子系统的单点故障均已经解决或者正在解决(Hadoop HA),本文将为大家介绍当前的进度和具体的解决方案。

不管在MRv1还是MRv2中,MapReduce应用程序编程接口(API)是一致的。为了能够让用户应用程序平滑迁移到Hadoop 2.0中,MRv2尽可能得保证编程接口的向后兼容性,但由于MRv2本身进行了改进和优化,它在向后兼容性方面存在少量问题,而这正是本文所要介绍的。

在Hadoop中,资源管理是很重要的一个模块,它直接决定了资源的组织形式和分配方式,是其他功能的基础,而伴随着Hadoop的优化和升级,资源管理系统在发生的重大变化,本文将对比Hadoop 1.0和Hadoop 2.0中的资源管理方案。

随着Hadoop版本的演化,Fair Scheduler和Capacity Scheduler的功能越来越完善,包括层级队列组织方式、资源抢占、批量调度等,本文对比了Fair Scheduler和Capacity Scheduler两个调度器的异同。

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

本文汇总了目前正在进行中的一些尝试将系统运行在YARN上的项目,这些项目涉及分布式领域各个方面的系统,包括离线处理、在线计算、图算法、迭代式算法等,从这些项目可以看出来,在将来,YARN将变成一个轻量级的IAAS层,统一管理和调度各种系统,进而逐步实现所谓的“大集群理念”。

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

在YARN中,资源调度器(ResourceScheduler)是一个非常核心的部件,它负责将各个节点上的资源封装成container,并按照一定的约束条件(按队列分配,每个队列有一定的资源分配上限等)分配给各个application。本文介绍了YARN资源调度器。

Capacity Scheduler和Fair Scheduler是Hadoop中最著名的两个多用户资源调度器,下面就这两个调度器的几个重大特性进行介绍(支持层次队列组织方式、支持资源抢占和支持多类别资源调度)。