MapReduce单元测试框架 MRUnit

码农软件 · 软件分类 · 单元测试工具 · 2019-11-19 18:13:00

软件介绍

MRUnit是由Couldera公司开发的专门针对 Hadoop中编写MapReduce单元测试的框架,基本原理是JUnit4和 EasyMock。MR就是Map和Reduce的缩写。MRUnit框架非常精简,其核心的单元测试依赖于JUnit。而且MRUnit实现了一套 Mock对象来控制OutputCollector的操作,从而可以拦截OutputCollector的输出,和我们的期望结果进行比较,达到自动断言 的目的。

有了MRUnit,对MR程序做重构的时候,只要明确输入和输出,就可以写出单元测试,并且在放到群集校验前进行试验,从而节省时间和资源,也 能更快的定位到问题。而进行重构的话,只要写得足够详细的单元测试都是绿色的话,那么基本就可以保证在群集运行的结果也是正常的。

MRUnit不在Apache标准的Hadoop的发行版中,而是在Couldera公司的增强版本中hadoop- 0.20.1+133.tar.gz的contrib\mrunit\hadoop-0.20.1+169.56-mrunit.jar,已经贴在附件 中。只要把它和Junit4的jar添加到Hadoop程序项目的classpath中,就可以使用MRUnit了。

MRUnit包含四种 Driver:MapDriver,ReduceDriver,MapReduceDriver,PipelineMapReduceDriver。可以 根据自己的需要选择合适的Driver。

给出一个Reduce的很简单例子,Reduce的逻辑就是把Value中的各个值相加。

public class ExtractKeywordTest {
private Reducer<Text, Text, Text, Text> reducer;
private ReduceDriver<Text, Text, Text, Text> reduceDriver;
@Before
public void setUp() throws Exception {
reducer = new ExtractKeywordAcookie.Reduce();
reduceDriver = new ReduceDriver<Text, Text, Text, Text>(reducer);
}
@Test
public void testReduce() {
List<Text> values = new ArrayList<Text>();
values.add(new Text(1.0_0.1));
values.add(new Text(2.0_0.2));
values.add(new Text(3.0_0.3));
reduceDriver.withInput(new Text(20100106_00_IBM), values)
.withOutput(new Text(20100106_00_IBM_6.00_0.60_), null)
.runTest();
}

本文地址:https://www.codercto.com/soft/d/19349.html

算法数论

算法数论

裴定一、祝跃飞 / 科学出版社 / 2002年09月 / 19.00

本书论述了算法数论的基本内容,其中包括:连分数、代数数域、椭圆曲线、素性检验、大整数因子分解算法、椭圆曲线上的离散对数、超椭圆曲线。本书的特点是内容涉及面广,在有限的篇幅内,包含了必要的预备知识和数学证明,尽可能形成一个完整的体系。并且本书的部分内容曾多次在中国科学院研究生院信息安全国家重点实验室和广州大学作为硕士研究生教材使用。 本书可作为信息安全、数论等专业的研究生教材及相关专业的研究人......一起来看看 《算法数论》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具