近日,Yahoo! Hadoop Map-Reduce开发团队领导Arun Murthy展示了针对Hadoop的重新设计过的核心Map-Reduce架构,旨在简化升级、支持更大的集群、更快的恢复,还要支持除了Map-Reduce以外的其他编程范式。重新设计的Hadoop核心将引擎分割为一个资源管理器,用以支持各种集群计算范式,同时将map-reduce作为一个用户库,组织可以在同一个集群中运行多个版本的map-reduce代码。新的设计非常类似于开源的Mesos集群管理项目——Yahoo!和Mesos对其中的差异进行了评述。 新方案的主要优势在于: - 可伸缩性:支持6000台机器所构成的集群,每台机器拥有16个核心、48GB的RAM、48TB的磁盘大小、100k的并发任务及10k的并发job。
- 可用性:目前的Job Tracker是单失败点,升级需要停止整个集群才行。
- 敏捷性:新的设计将map-reduce作为一个用户库,这样同一个集群中所运行的job就可以使用不同的版本了。
- 更低的延迟:新的设计考虑到了更快的响应、特别是对于小范围的任务。
- 更好的利用率:毫无疑问,更加精细化的资源与调度模型可以降低资源的浪费。
- 支持多种编程模型:Murthy说Yahoo内部希望支持其他范式的呼声越来越高,如MPI。
此次重新设计的主旨在于将职责划分为通用的集群资源管理系统,同时还有一个针对map-reduce的独立应用master,实际上可以是任何的编程模型。这将替换掉Job Tracker和Task Tracker。资源管理系统包含如下集群范围内的控制器: - 一个ResourceManager,执行集群范围内的资源调度,如内存、CPU、磁盘、网络等等。
- 一个Scheduler插件,可以针对ResourceManager实现不同的策略(类似于目前的scheduler API,但却拥有不同的接口,并且需要新的实现)。
- 每个应用一个ApplicationMaster(比如map-reduce编程),可以请求资源、追踪进度、处理失败,并且可以保持计算状态。

|