不管在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两个调度器的异同。

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

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

在最初的实现中,YARN采用的资源抢占策略非常野蛮,在事先不告诉应用程序主管的情况下,强制杀死它的弟兄(任务),很显然,各个应用程序主管会非常的不满,这也有损YARN资源管理的形象,随着Hadoop生态系统的完善,当然不希望这种不和谐的场面出现,于是更友好地资源抢占策略提上了日程,本文介绍了新YARN新的抢占策略。

在YARN中,当ResourceManager探测到ApplicationMaster运行失败后,会尝试在另外一个节点上重新启动它,通常而言,ApplicationMaster重启后,会恢复之前的运行状态。而本文介绍的这个特性则是如何指定每个应用程序ApplicationMaster的重试次数。