MapReduce性能优化系统及优化方法技术方案

技术编号:14242563 阅读:137 留言:0更新日期:2016-12-21 19:45
本发明专利技术公开了一种MapReduce性能优化系统及方法,其中,系统包括:Skew‑‑主节点,用于作为主协调器全局地对Reduce子任务间的Key分布进行管理,并且将Reduce子任务调度到合适的执行节点上;多个Skew‑‑从节点,每个Skew‑‑从节点包括:Key监控器与IO监控器,用于收集Key相关的信息,并将Key相关的信息发送至Skew‑‑主节点。该优化系统可以优化MapReduce在倾斜数据上的性能,简单易实现。

【技术实现步骤摘要】

本专利技术涉及分布式计算
,特别涉及一种MapReduce性能优化系统及优化方法
技术介绍
互联网和万维网的快速增长,导致了大量的信息在网上传播。此外,企业和政府机构产生了大量的结构化和非结构化信息,这些信息需要进行处理,分析和链接。数据密集型应用程序,如系统生物学,气候建模,数据挖掘和高性能计算所产生的的数据量一路飙升,从GB到TB乃至PB级。MapReduce是一个处理大规模数据的编程模型和分布式计算模型,具有广泛的应用,例如分布式的基于模式的搜索、分布式排序、网页链接图反转、Web访问日志统计、倒排索引结构、文档聚类、机器学习等等。此外,MapReduce模型已经成功应用于多核系统、网格式桌面系统、分布式计算环境、动态云环境以及移动计算环境。由于MapReduce的高可编程性,许多企业和组织都自己实现了MapReduce模型,比如Google公司的MapReduce、Yahoo公司的Hadoop、微软的Dryad以及Facebook的Hive等等。MapReduce在设计之初假设输入数据是均匀分布的,因此默认使用对Key进行哈希的方法,通过保证分配给每个Reduce子任务的Key的数量基本相同来达到负载均衡的目的。但是,当输入数据存在较大倾斜时,每个Key对应的Value数量差异较大,Key的数量相同并不意味着数据量相同,因此使用该方法并不能做到很好的负载均衡,那些分配了过多数据的Reduce子任务势必会运行非常长的时间,从而导致MapReduce性能的严重下降。如图1所示,图1显示了Ranked-Inverted-Index测试用例的运行结果(该实验环境配置为24个处理容器(containers,子任务处理单元)来处理495个Map子任务和40个Reduce子任务,不同的块代表不同的子任务,由于Hadoop MapReduce默认提前进行Shuffle—当5%的Map子任务完成时就已经开始了Shuffle,所以部分Shuffle时间和Map子任务重合,没有在图中显示出来),从图中可以看出最慢的Reduce子任务的运行时间是平均Reduce子任务运行时间的4.57倍,而在MapReduce模型中,整个任务的执行过程是由最慢子任务决定的,因此整个任务的执行时间都被显著拖慢。另外,在现实应用中,数据倾斜现象非常普遍,在科学计算中倾斜尤为普遍,因此优化MapReduce在倾斜数据上的性能显得非常重要。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种MapReduce性能优化系统,该系统可以优化MapReduce在倾斜数据上的性能。本专利技术的另一个目的在于提出一种MapReduce性能优化方法。为达到上述目的,本专利技术一方面实施例提出了一种MapReduce性能优化系统,包括:Skew--主节点,用于作为主协调器全局地对Reduce子任务间的Key分布进行管理,并且将所述Reduce子任务调度到合适的执行节点上,其中,所述Skew--主节点包括:Key分配器,用于根据Reduce任务的复杂度将Keys均匀地分配到每一个Reduce子任务上;Reducer选择器,用于根据Key的位置信息把所述Reduce子任务调度到所述合适的执行节点上;多个Skew--从节点,所述多个Skew--从节点位于Hadoop YARN的节点管理器上,所述多个Skew--从节点中每个Skew--从节点包括:Key监控器与IO监控器,用于收集Key相关的信息,所述Key相关的信息包括group大小、所述Key的位置信息以及每个节点的IO占用信息,并将所述Key相关的信息发送至所述Skew--主节点。本专利技术实施例的MapReduce性能优化系统,可以使用一种称之为复杂度感知的Key分配方法,以及与之对应的局部性感知的Reducer选择、全Mapper执行和Shuffle类型感知的调控等机制来保证MapReduce的性能。复杂度感知的Key分配方法不仅考虑Key记录的大小,也考虑Reduce函数的复杂度,从而能够更好地在各个Reduce子任务间平衡计算开销。局部性感知的Reducer选择、全Mapper执行和Shuffle类型感知的调控等机制则通过利用数据局部性来减少数据传输和提升资源利用率来减少复杂度感知的Key分配带来的额外开销,实现优化MapReduce在倾斜数据上的性能的目的,简单易实现。另外,根据本专利技术上述实施例的MapReduce性能优化系统还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,分配给所述Reduce子任务的partition包含多个group,其中,每个group由Reduce函数一次处理。进一步地,在本专利技术的一个实施例中,通过相应的装箱问题使所述Reduce子任务间的计算量均衡。进一步地,在本专利技术的一个实施例中,通过本地感知的Reducer选择算法使数据本地化。进一步地,在本专利技术的一个实施例中,通过自动识别Shuffle的类型判断是否提前调度Reduce子任务开始数据Shuffle,以将所述Reduce子任务的数据从Map完成的Map节点传输到Reduce节点。为达到上述目的,本专利技术另一方面实施例提出了一种MapReduce性能优化方法,包括以下步骤:S1,所述Skew--主节点对所述Reduce子任务间的Key分布进行管理,并且将所述Reduce子任务调度到所述合适的执行节点上;S2,Key分配器根据所述Reduce任务的复杂度将所述Keys均匀地分配到所述每一个Reduce子任务上,并且所述Reducer选择器根据所述Key的位置信息把所述Reduce子任务调度到所述合适的执行节点上;S3,所述Key监控器与所述IO监控器收集所述Key相关的信息,并将所述Key相关的信息发送至所述Skew--主节点。本专利技术实施例的MapReduce性能优化方法,可以使用一种称之为复杂度感知的Key分配方法,以及与之对应的局部性感知的Reducer选择、全Mapper执行和Shuffle类型感知的调控等机制来保证MapReduce的性能。复杂度感知的Key分配方法不仅考虑Key记录的大小,也考虑Reduce函数的复杂度,从而能够更好地在各个Reduce子任务间平衡计算开销。局部性感知的Reducer选择、全Mapper执行和Shuffle类型感知的调控等机制则通过利用数据局部性来减少数据传输和提升资源利用率来减少复杂度感知的Key分配带来的额外开销,实现优化MapReduce在倾斜数据上的性能的目的,简单易实现。另外,根据本专利技术上述实施例的MapReduce性能优化方法还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,分配给所述Reduce子任务的partition包含多个group,其中,每个group由Reduce函数一次处理。进一步地,在本专利技术的一个实施例中,通过相应的装箱问题使所述Reduce子任务间的计算量均衡。进一步地,在本专利技术的一个实施例中,通过本地感知的Reducer选择算法使数据本地化。进一步地,在本专利技术的一个实施例中,通过自动识别Shuffle的类型判断是否提前调度Reduce子任务开始数据Shuffle本文档来自技高网
...
MapReduce性能优化系统及优化方法

【技术保护点】
一种MapReduce性能优化系统,其特征在于,包括:Skew‑‑主节点,用于作为主协调器全局地对Reduce子任务间的Key分布进行管理,并且将所述Reduce子任务调度到合适的执行节点上,其中,所述Skew‑‑主节点包括:Key分配器,用于根据Reduce任务的复杂度将Keys均匀地分配到每一个Reduce子任务上;Reducer选择器,用于根据Key的位置信息把所述Reduce子任务调度到所述合适的执行节点上;多个Skew‑‑从节点,所述多个Skew‑‑从节点位于Hadoop YARN的节点管理器上,所述多个Skew‑‑从节点中每个Skew‑‑从节点包括:Key监控器与IO监控器,用于收集Key相关的信息,所述Key相关的信息包括group大小、所述Key的位置信息以及每个节点的IO占用信息,并将所述Key相关的信息发送至所述Skew‑‑主节点。

【技术特征摘要】
1.一种MapReduce性能优化系统,其特征在于,包括:Skew--主节点,用于作为主协调器全局地对Reduce子任务间的Key分布进行管理,并且将所述Reduce子任务调度到合适的执行节点上,其中,所述Skew--主节点包括:Key分配器,用于根据Reduce任务的复杂度将Keys均匀地分配到每一个Reduce子任务上;Reducer选择器,用于根据Key的位置信息把所述Reduce子任务调度到所述合适的执行节点上;多个Skew--从节点,所述多个Skew--从节点位于Hadoop YARN的节点管理器上,所述多个Skew--从节点中每个Skew--从节点包括:Key监控器与IO监控器,用于收集Key相关的信息,所述Key相关的信息包括group大小、所述Key的位置信息以及每个节点的IO占用信息,并将所述Key相关的信息发送至所述Skew--主节点。2.根据权利要求1所述的MapReduce性能优化系统,其特征在于,分配给所述Reduce子任务的partition包含多个group,其中,每个group由Reduce函数一次处理。3.根据权利要求1所述的MapReduce性能优化系统,其特征在于,通过相应的装箱问题使所述Reduce子任务间的计算量均衡。4.根据权利要求1所述的MapReduce性能优化系统,其特征在于,通过本地感知的Reducer选择算法使数据本地化。5.根据权利要求1所述的MapReduce性能优化系统,其特征在于,通过自动识别Shuffle的类型判断是否提前调度Red...

【专利技术属性】
技术研发人员:姜进磊武永卫王博
申请(专利权)人:鄞州浙江清华长三角研究院创新中心
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1