Skip to main content
QUICK REVIEW

[论文解读] M3R: Increased performance for in-memory Hadoop jobs

Avraham Shinnar, David Cunningham|arXiv (Cornell University)|Aug 21, 2012
Cloud Computing and Resource Management参考文献 13被引用 56
一句话总结

M3R 是一种高性能的内存内 Hadoop MapReduce 引擎,通过消除磁盘 I/O 并利用内存数据结构,加速了迭代型、内存驻留工作负载。它在不修改现有 Hadoop 作业的前提下支持原有作业,通过优化数据布局、减少序列化开销,并通过基于 X10 的执行实现直接缓存访问,使稀疏矩阵操作的性能最高提升 45 倍。

ABSTRACT

Main Memory Map Reduce (M3R) is a new implementation of the Hadoop Map Reduce (HMR) API targeted at online analytics on high mean-time-to-failure clusters. It does not support resilience, and supports only those workloads which can fit into cluster memory. In return, it can run HMR jobs unchanged -- including jobs produced by compilers for higher-level languages such as Pig, Jaql, and SystemML and interactive front-ends like IBM BigSheets -- while providing significantly better performance than the Hadoop engine on several workloads (e.g. 45x on some input sizes for sparse matrix vector multiply). M3R also supports extensions to the HMR API which can enable Map Reduce jobs to run faster on the M3R engine, while not affecting their performance under the Hadoop engine.

研究动机与目标

  • 通过消除磁盘 I/O 并利用内存执行,解决 Hadoop MapReduce 在迭代型、内存驻留工作负载上的性能瓶颈。
  • 使现有 Hadoop 作业(包括来自 Pig、Jaql 和 SystemML 的作业)无需修改即可在更快的内存内引擎上运行。
  • 通过优化数据布局和序列化,减少开销并提高内存密集型工作负载的缓存效率。
  • 证明在不牺牲 API 兼容性或可移植性的情况下,可实现显著的性能提升。

提出的方法

  • M3R 使用 X10 实现 Hadoop MapReduce API,X10 是一种原生支持分布式内存计算和高效序列化的语言。
  • 它用内存中的键值存储替代 Hadoop 的基于磁盘的 shuffle,减少 I/O 并提升节点间的数据访问速度。
  • 该引擎使用自定义序列化协议和直接缓存访问,避免中间的序列化/反序列化步骤,从而提升迭代算法的性能。
  • 通过修补运行时组件(如 SystemML)来直接从内存缓存中检索数据,与现有 Hadoop 工具链集成。
  • 系统支持对 HMR API 的扩展,可在 M3R 上进一步加速性能,同时不降低 Hadoop 的性能。
  • 它利用 X10 的轻量级并发模型和分布式对象模型,高效管理节点间的数据移动和计算。

实验结果

研究问题

  • RQ1一种高性能的内存内 Hadoop MapReduce 引擎是否能在不破坏向后兼容性的情况下,显著提升迭代型、内存驻留工作负载的性能?
  • RQ2消除磁盘 I/O 并优化数据序列化对内存内 MapReduce 工作负载的性能有何影响?
  • RQ3在不修改的情况下,现有 Hadoop 工具链(如 SystemML、Pig、Jaql)在内存内引擎上能被加速到何种程度?
  • RQ4为支持内存内执行,同时保持与 Hadoop MapReduce API 的兼容性,需要进行哪些架构更改?

主要发现

  • 与 Hadoop 相比,M3R 在稀疏矩阵-向量乘法上实现了最高 45 倍的性能提升,尤其在较大输入规模下表现显著。
  • 对于全局非负矩阵分解,M3R 将运行时间从 Hadoop 上的 1200 多秒减少到规模下的 30 秒以内。
  • 在线性回归任务中,M3R 的性能显著优于 Hadoop,大规模数据集的执行时间从超过 1600 秒降至 400 秒以下。
  • PageRank 在 M3R 上的执行时间持续缩短,大规模图的运行时间从 Hadoop 上的 800 多秒减少到 200 秒以下。
  • 性能提升主要归因于减少的 I/O、优化的序列化以及通过缓存集成实现的直接内存数据访问。
  • SystemML 作业获得了显著性能提升,M3R 避免冗余序列化并利用内存数据结构的能力进一步放大了性能增益。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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