12.2 下一代MapReduce框架概述
12.2.1 基本设计思想
在第6章中,我们已经介绍了JobTracker的基本功能,包括资源管理(由TaskScheduler模块实现)和作业控制(由JobTracker中多个模块共同实现)两部分,具体如图12-1所示。当前Hadoop MapReduce之所以在可扩展性、资源利用率和多框架支持等方面存在不足,正是由于Hadoop对JobTracker赋予的功能过多而造成负载过重。此外,从设计角度上看,Hadoop未能够将资源管理相关的功能与应用程序相关的功能分开,造成Hadoop难以支持多种计算框架。
图 12-1 第一代MapReduce框架基本架构
下一代MapReduce框架的基本设计思想是将JobTracker的两个主要功能,即资源管理和作业控制(包括作业监控、容错等),分拆成两个独立的进程,如图12-2所示。资源管理进程是与具体应用程序无关的模块,它负责整个集群的资源(内存、CPU、磁盘等)管理;而作业控制进程则是直接与应用程序相关的模块,且每个作业控制进程只负责管理一个作业。这样,通过将原有JobTracker中与应用程序相关和无关的模块分开,不仅减轻了JobTracker负载,也使得Hadoop支持更多的计算框架。
图 12-2 下一代MapReduce框架基本架构
从另外一个角度看,下一代MapReduce框架实际上是一个资源统一管理平台,它已经不再局限于仅支持MapReduce一种计算模型,而是可无限融入多种计算框架,且对这些框架进行统一管理和调度。