MRUnit MapReduce单元测试框架开源项目

我要开发同款
匿名用户2010年05月20日
138阅读

技术信息

开源地址
https://gitee.com/mirrors/yuitest
授权协议
Apache

作品详情

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

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

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

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

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

publicclassExtractKeywordTest{privateReducer<Text,Text,Text,Text>reducer;privateReduceDriver<Text,Text,Text,Text>reduceDriver;@BeforepublicvoidsetUp()throwsExceptio{reducer=ewExtractKeywordAcookie.Reduce();reduceDriver=ewReduceDriver<Text,Text,Text,Text>(reducer);}@TestpublicvoidtestReduce(){List<Text>values=ewArrayList<Text>();values.add(ewText(1.0_0.1));values.add(ewText(2.0_0.2));values.add(ewText(3.0_0.3));reduceDriver.withIput(ewText(20100106_00_IBM),values).withOutput(ewText(20100106_00_IBM_6.00_0.60_),ull).ruTest();}

功能介绍

MRUnit是由Couldera公司开发的专门针对 Hadoop中编写MapReduce单元测试的框架,基本原理是JUnit4和 EasyMock。MR就是Map和Reduce的缩写。MRUni...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论