中文

MapReduce 程序的自动优化

数据库 2011-04-19 v1 分布式、并行与集群计算

摘要

MapReduce 分布式编程框架已变得流行,尽管有证据表明其当前实现效率低下,完成类似任务所需的硬件远多于传统关系数据库。MapReduce 作业可以应用许多传统的数据库查询优化技术(如用于选择操作的 B+ 树、用于投影操作的列存储风格技术等),但现有系统并未应用它们,这主要是因为自由形式的用户代码掩盖了正在执行的真实数据操作。例如,SQL 中的选择操作很容易被检测到,但 MapReduce 程序中的选择操作却与大量其他程序逻辑一起嵌入在 Java 代码中。我们可以要求程序员提供关于程序数据语义的显式提示,但 MapReduce 的吸引力之一恰恰在于它不要求用户提供此类信息。本文介绍了 Manimal,它能自动分析 MapReduce 程序并应用适当的数据感知优化,从而完全不需要程序员提供任何额外帮助。我们展示了 Manimal 能在一系列数据操作中成功检测到优化机会,并在先前编写的 MapReduce 程序上实现了高达 1,121% 的加速。

关键词

引用

@article{arxiv.1104.3217,
  title  = {Automatic Optimization for MapReduce Programs},
  author = {Eaman Jahani and Michael J. Cafarella and Christopher Ré},
  journal= {arXiv preprint arXiv:1104.3217},
  year   = {2011}
}

备注

VLDB2011