12.2.2 资源统一管理平台

随着互联网的高速发展,基于数据密集型应用的计算框架不断出现。从支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4……各种框架诞生于不同的公司或者实验室。它们各有所长,各自解决了某一类应用问题。而在大部分互联网公司中,这几种框架可能同时被采用。比如在搜索引擎公司中,一种可能的技术方案如下:网页建索引采用MapReduce框架,自然语言处理/数据挖掘采用Spark(如网页PageRank计算、聚类分类算法等),对性能要求很高的数据挖掘算法用MPI等。考虑到资源利用率、运维成本、数据共享等因素,公司一般希望将所有这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样,便诞生了资源统一管理与调度平台,如图12-3所示。资源统一管理与调度平台的典型代表是Apache的YARN(Yet Another Resource Negotiator)、Facebook的Corona和Berkeley的Mesos。

12.2.2 资源统一管理平台 - 图1

图 12-3 资源统一管理与调度平台的基本架构

从上面分析可知,MRv 2实际上是一个资源统一管理平台。它的目标已经不再局限于支持MapReduce一种计算框架,而是朝着对多种框架进行统一管理的方向发展。

相比于“一种计算框架一个集群”的模式,共享集群的模式存在多种好处。

❑资源利用率高:如图12-4所示,如果每个框架一个集群,则往往由于应用程序数量和资源需求的不均衡性,使得在某段时间内,有些计算框架的集群资源紧张,而另外一些集群资源空闲。共享集群模式则通过多种框架共享资源,使得集群中的资源得到更加充分的利用。

12.2.2 资源统一管理平台 - 图2

图 12-4 共享集群模式使得资源利用率提高

❑运维成本低:如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模式通常需要少数管理员即可完成多个框架的统一管理。

❑数据共享:随着数据量的暴增,跨集群间的数据移动不仅需花费更长的时间,且硬件成本也会大大增加,而共享集群模式可让多种框架共享数据和硬件资源,将大大减少数据移动带来的成本。