新方案的主要优点在于:html
- 可伸缩性:支持6000台机器所构成的集群,每台机器拥有16个核心、48GB的RAM、48TB的磁盘大小、100k的并发任务及10k的并发job。
- 可用性:目前的Job Tracker是单失败点,升级须要中止整个集群才行。
- 敏捷性:新的设计将map-reduce做为一个用户库,这样同一个集群中所运行的job就可使用不一样的版本了。
- 更低的延迟:新的设计考虑到了更快的响应、特别是对于小范围的任务。
- 更好的利用率:毫无疑问,更加精细化的资源与调度模型能够下降资源的浪费。
- 支持多种编程模型:Murthy说Yahoo内部但愿支持其余范式的呼声愈来愈高,如MPI。
这次从新设计的主旨在于将职责划分为通用的集群资源管理系统,同时还有一个针对map-reduce的独立应用master,实际上能够是任何的编程模型。这将替换掉Job Tracker和Task Tracker。资源管理系统包含以下集群范围内的控制器:java
- 一个ResourceManager,执行集群范围内的资源调度,如内存、CPU、磁盘、网络等等。
- 一个Scheduler插件,能够针对ResourceManager实现不一样的策略(相似于目前的scheduler API,但却拥有不一样的接口,而且须要新的实现)。
- 每一个应用一个ApplicationMaster(好比map-reduce编程),能够请求资源、追踪进度、处理失败,而且能够保持计算状态。
下一代的MapReduce架构。来自于Yahoo编程
能够分布于各个worker节点上,有:网络
- 一个共享的NodeManager,能够访问work节点资源(好比说,经过认证请求并开启任务)。
- 每一个应用的Containers(相似于任务),使用本地资源进行计算。
这次从新设计考虑到了:MySQL HandleSocket技术在SNS Feed存储中的应用架构
- 经过使用ZooKeeper保存集群状态而实现的高可用性,能够快速实现故障恢复,转向备份资源管理器上。任何 ApplicationMaster均可以将状态放到HDFS中。好比说若是出现崩溃,map-reduce Application Master就会将状态保存起来而且能够快速恢复。
- 经过定义良好的wire协议实现向后兼容性,考虑到了同一个集群中的ResourceManager和NodeManager不断增长、 同时运行不一样版本的map-reduce或是其余编程范式状况下的更新问题。Arun说到,Yahoo!研究员常常会运行MPI、Master- Worker和迭代模型,这么作考虑到了编程模型上的更新,如Hadoop在线原型。
- 更好的利用率,替换掉了固定的map并使用一种模型减小了资源占用,该模型利用了底层的资源,如磁盘和CPU以免浪费或是防止竞争。