Skip to main content
QUICK REVIEW

[论文解读] Testing MapReduce-Based Systems

João Eugênio Marynowski, Michel Albonico|arXiv (Cornell University)|Sep 28, 2012
Cloud Computing and Resource Management参考文献 4被引用 7
一句话总结

本文提出 HadoopTest,一种用于基于 MapReduce 的系统的可扩展测试框架,该框架在每个 map 和 reduce 工作节点上部署分布式测试器,以协调测试执行、注入故障并验证结果。该框架在两个 Hadoop 自带的应用程序中成功检测出所有非等价变异体,证明了通过协调式故障注入测试有效检测功能错误的能力。

ABSTRACT

MapReduce (MR) is the most popular solution to build applications for large-scale data processing. These applications are often deployed on large clusters of commodity machines, where failures happen constantly due to bugs, hardware problems, and outages. Testing MR-based systems is hard, since it is needed a great effort of test harness to execute distributed test cases upon failures. In this paper, we present a novel testing solution to tackle this issue called HadoopTest. This solution is based on a scalable harness approach, where distributed tester components are hung around each map and reduce worker (i.e., node). Testers are allowed to stimulate each worker to inject failures on them, monitor their behavior, and validate testing results. HadoopTest was used to test two applications bundled into Hadoop, the Apache open source MapReduce implementation. Our initial implementation demonstrates promising results, with HadoopTest coordinating test cases across distributed MapReduce workers, and finding bugs.

研究动机与目标

  • 为解决大规模、易出错的 MapReduce 系统在复杂分布式测试用例协调方面的挑战。
  • 实现跨多个 MapReduce 工作节点(map 和 reduce 节点)的协调式并行测试用例执行。
  • 在不修改被测系统源代码的情况下,支持故障注入和实时验证。
  • 为生产级 Hadoop 应用提供一种非侵入式、可扩展的功能与故障感知测试解决方案。
  • 通过在真实 Hadoop 应用上应用变异分析,评估该方法的有效性。

提出的方法

  • HadoopTest 在每个 MapReduce 工作节点上部署轻量级测试器组件,以控制测试执行并监控行为。
  • 每个测试器通过分布式协调算法与其他测试器协作,以在节点间同步测试用例执行。
  • 测试器直接向工作节点注入故障(例如,模拟崩溃、延迟),以模拟现实世界中的故障情况。
  • 通过断言和值比较的判定标准,执行功能验证,以比较预期输出与实际输出。
  • 该框架与 Hadoop 集成,且无需修改被测系统的源代码。
  • 应用变异分析生成目标应用的变异体,HadoopTest 评估这些变异体是否被检测到。

实验结果

研究问题

  • RQ1测试框架能否有效协调跨多个 MapReduce 工作节点的分布式测试用例?
  • RQ2HadoopTest 能否成功向单个 map 和 reduce 工作节点注入故障,以模拟现实世界中的故障?
  • RQ3HadoopTest 能否在不修改被测系统的情况下,通过协调式故障注入测试检测出功能错误?
  • RQ4HadoopTest 在真实 Hadoop 应用中检测非等价变异体的效率如何?
  • RQ5HadoopTest 能否用于测试复杂的、生产级的 MapReduce 应用,而不仅限于基础示例?

主要发现

  • HadoopTest 在 Grid5000 测试平台的 50 台机器节点上成功协调了分布式测试用例,证明了其可扩展性和协调能力。
  • 该框架检测到了 PiEstimator 应用中所有非等价变异体,表明其对功能错误具有高度敏感性。
  • WordCount 应用中的所有非等价变异体也均被检测到,证实了该框架在功能测试方面的有效性。
  • 该方法在无需修改被测系统源代码的情况下,实现了有效的故障注入和验证。
  • HadoopTest 在支持 map 和 reduce 节点间的并行测试执行和分布式协调方面,优于现有工具如 MRUnit 和 Herriot。
  • 初步实现表明,通过变异分析识别错误具有潜力,预示着该框架在 Hadoop 测试中具有广泛采用的前景。

更好的研究,从现在开始

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

无需绑定信用卡

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