Apache Hadoop 2.0.3 发布

jopen 11年前

Apache Hadoop 2.0.3发布了,在这次版本更新中,主要增加了以下几个特性:

1.  引入一种新的HDFS HA解决方案QJM

之前NameNode HA已经有两种解决方案,分别是基于共享存储区的Backup Node方案和基于Bookeeper的方案,在该版本中引入另外一种方案:QJM(Quorum Journal Manager)。

该方案(HDFS-3077) 采用了quorum commit protocol,引入两个角色:QuorumJournalManager和JournalNode,QuourumJournalManager通过 RPC将edits日志写入N个JournalNode,只要有大多数(大于N/2个)JournalNode成功写入则任务日志写入成功。

2.  YARN 多资源调度机制

在该版本中,YARN的资源调度器同时支持内存和CPU两种资源调度,采用的调度算法源自Mesos的DRF(Dominant Resource Fairness),对应论文为:“Dominant Resource Fairness: Fair Allocation of Multiple Resources Types”,具体可参考 YARN-2Apache Mesos调度机制

YARN 对内存资源和CPU资源采用了不同的资源隔离方案。对于内存资源,为了能够更灵活的控制内存使用量,YARN采用了进程监控的方案控制内 存使用,即每个NodeManager会启动一个额外监控线程监控每个container内存资源使用量,一旦发现它超过约定的资源量,则会将其杀死。采 用这种机制的另一个原因是Java中创建子进程采用了fork()+exec()的方案,子进程启动瞬间,它使用的内存量与父进程一致,从外面看来,一个 进程使用内存量可能瞬间翻倍,然后又降下来,采用线程监控的方法可防止这种情况下导致swap操作。对于CPU资源,则采用了Cgroups进行资源隔 离。具体可参考 YARN-3

3.  YARN ResourceManager重启机制

该版本引入了一个简单的ResourceManager重启机制,保证RM重启后,各个应用工程序可继续运行而不受影响。需要注意的是,这只是第 一阶段的实现,还很不完整,比如不能向NameNode HA那样做到自动切换,不能恢复所有正在运行的Container,Application和ApplicationMaster而只是重新启动另外一个 而已,具体可参考 YARN-230

4.  YARN稳定性和扩展性得到验证

Yahoo已使用YARN在超过3万个节点上运行了14 million个应用程序,具体可参考: Hadoop at Yahoo!: More Than Ever Before

详细信息:Announcing Apache Hadoop 2.0.3 Release and Roadmap 

来自:董的博客