Skip to main content
QUICK REVIEW

[论文解读] Improving the Load Balance of MapReduce Operations based on the Key Distribution of Pairs

Liya Fan, Bo Gao|arXiv (Cornell University)|Jan 2, 2014
Cloud Computing and Resource Management参考文献 26被引用 8
一句话总结

本文提出了一种针对MapReduce的细粒度调度算法,通过分析中间键值对的键分布来改善负载均衡。通过将操作分配问题建模为平衡子集和(BSS)问题,并使用精确和近似算法,该方法在PUMA基准测试中将作业持续时间减少了高达37%,通过动态工作负载适应和通过流水线机制增强的资源利用率,优于标准MapReduce。

ABSTRACT

Load balance is important for MapReduce to reduce job duration, increase parallel efficiency, etc. Previous work focuses on coarse-grained scheduling. This study concerns fine-grained scheduling on MapReduce operations. Each operation represents one invocation of the Map or Reduce function. Scheduling MapReduce operations is difficult due to highly screwed operation loads, no support to collect workload statistics, and high complexity of the scheduling problem. So current implementations adopt simple strategies, leading to poor load balance. To address these difficulties, we design an algorithm to schedule operations based on the key distribution of intermediate pairs. The algorithm involves a sub-program for selecting operations for task slots, and we name it the Balanced Subset Sum (BSS) problem. We discuss properties of BSS and design exact and approximation algorithms for it. To transparently incorporate these algorithms into MapReduce, we design a communication mechanism to collect statistics, and a pipeline within Reduce tasks to increase resource utilization. To the best of our knowledge, this is the first work on scheduling MapReduce workload at this fine-grained level. Experiments on PUMA [T+12] benchmarks show consistent performance improvement. The job duration can be reduced by up to 37%, compared with standard MapReduce.

研究动机与目标

  • 解决由于粗粒度调度和操作工作负载不均导致的MapReduce中负载不均衡问题。
  • 基于中间键的分布,实现对单个Map和Reduce函数调用的细粒度调度。
  • 设计一种通信机制,以透明方式收集MapReduce中的运行时工作负载统计信息。
  • 通过Reduce任务内部的流水线机制,最大化资源利用率。
  • 提供首个针对函数调用级别MapReduce操作的系统性细粒度调度方法。

提出的方法

  • 将操作调度问题建模为平衡子集和(BSS)问题,以在任务槽之间均衡工作负载。
  • 设计精确和近似算法,以在高复杂度约束下高效求解BSS问题。
  • 实现一种轻量级通信机制,以在不修改MapReduce核心框架的前提下收集中间键分布统计信息。
  • 在Reduce任务内部引入内部流水线,以重叠计算和数据传输,提高资源利用率。
  • 将所提出的算法和机制透明地集成到现有的MapReduce架构中。
  • 利用键频率和分布模式,指导将操作动态分配给任务槽以实现负载均衡。

实验结果

研究问题

  • RQ1与粗粒度方法相比,MapReduce操作的细粒度调度在改善负载均衡方面有何优势?
  • RQ2如何基于中间键分布,有效建模任务槽之间的负载均衡问题?
  • RQ3在分布式环境中,平衡子集和(BSS)问题是否能够以足够高的效率求解以具备实际可行性?
  • RQ4如何在MapReduce中以最小开销透明地收集运行时工作负载统计信息?
  • RQ5Reduce任务内部的流水线执行能在多大程度上提升资源利用率和作业完成时间?

主要发现

  • 所提出的调度算法在PUMA基准测试中相比标准MapReduce将作业持续时间减少了高达37%。
  • 通过基于键频率和分布的负载均衡,平衡子集和(BSS)建模能够有效实现负载均衡。
  • BSS的近似算法在显著降低计算成本的同时,提供了接近最优的性能。
  • 用于收集键分布统计信息的通信机制运行透明,且开销极小。
  • 在Reduce任务中集成流水线可提高资源利用率,并对性能提升有直接贡献。
  • 该方法在多种工作负载下均表现出一致的性能提升,展示了其鲁棒性和可扩展性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。