第8章 下一代MapReduce:YARN

本章内容

MapReduce V2设计需求

MapReduce V2主要思想和架构

MapReduce V2设计细节

MapReduce V2优势

本章小结

在第7章中我们为大家详细介绍了MapReduce在Hadoop中的实现细节。尽管Hadoop MapReduce在全球范围内广受欢迎,但是大部分人还是从Hadoop MapReduce的框架组成中意识到了Hadoop MapReduce框架的局限性。

1)JobTracker单点瓶颈。在之前的介绍中可以看到,MapReduce中的JobTracker负责作业的分发、管理和调度,同时还必须和集群中所有的节点保持Heartbeat通信,了解机器的运行状态和资源情况。很明显,MapReduce中独一无二的JobTracker负责了太多的任务,如果集群的数量和提交Job的数量不断增加,那么JobTracker的任务量也会随之快速上涨,造成JobTracker内存和网络带宽的快速消耗。这样的最终结果就是JobTracker成为集群的单点瓶颈,成为集群作业的中心点和风险的核心。

2)TaskTracker端,由于作业分配信息过于简单,有可能将多个资源消耗多或运行时间长的Task分配到同一个Node上,这样会造成作业的单点失败或等待时间过长。

3)作业延迟过高。在MapReduce运行作业之前,需要TaskTracker汇报自己的资源情况和运行情况,JobTracker根据获取的信息分配作业,TaskTracker获取任务之后再开始运行。这样的结果是通信的延迟造成作业启动时间过长。最显著的影响是小作业并不能及时完成。

4)编程框架不够灵活。虽然现在的MapReduce框架允许用户自己定义各个阶段的处理函数和对象,但是MapReduce框架还是限制了编程的模式及资源的分配。

针对这些问题,下面介绍MapReduce设计者提出的下一代Hadoop MapReduce框架(官方称为MRv2/YARN,为了形成对比,本章将YARN称为MapReduce V2,旧的MapReduce框架简称为MapReduce V1)。