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