MRUnit

MapReduce单元测试框架
授权协议 Apache
开发语言 Java
所属分类 开发工具、 单元测试工具
软件类型 开源软件
地区 不详
投 递 者 史劲
操作系统 跨平台
开源组织 Apache
适用人群 未知
 软件概览

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();
}
  • mrunit 这篇文章将略微绕开使用MapReduce实现数据密集型处理中发现的模式,以讨论同样重要的测试。 汤姆•惠勒 ( Tom Wheeler)在纽约2012年Strata / Hadoop World会议上参加的一次演讲给了我部分启发。 当处理大型数据集时,想到的并不是单元测试。 但是,当考虑到无论集群有多大或有多少数据时,都将相同的代码推送到所有节点以运行MapReduce作业,因此Ha

  • pom <dependency> <groupId>org.apache.mrunit</groupId> <artifactId>mrunit</artifactId> <version>1.1.0</version> <!--<scope>test</scope>--> <!--不加导包可能失败--> <classifier>hadoop2</classifier> </depen

  • 下面简单介绍MRUnit的使用方法 1、下载 http://archive.apache.org/dist/mrunit/mrunit-1.0.0/ 本人下载:apache-mrunit-1.0.0-hadoop2-bin.tar.gz 2、安装 tar -axvf apache-mrunit-1.0.0-hadoop2-bin.tar.gz -C 指定的路径 将lib下除了commons-log

  • 引言 借年底盛宴品鉴之风,继续抒我Hadoop之情,本篇文章介绍如何对Hadoop的MapReduce进行单元测试。MapReduce的开发周期差不多是这样:编写mapper和reducer、编译、打包、提交作业和结果检索等,这个过程比较繁琐,一旦提交到分布式环境出了问题要定位调试,重复这样的过程实在无趣,因此先对MapReduce做单元测试,消除明显的代码bug尤为必要。 MRUnit简介 MR

  • 这篇文章将略微绕开使用MapReduce实现数据密集型处理中的模式,以讨论同样重要的测试。 汤姆•惠勒 ( Tom Wheeler)在纽约2012年Strata / Hadoop World会议上参加的一次演讲给了我部分启发。 处理大型数据集时,想到的并不是单元测试。 但是,当考虑到无论集群有多大或有多少数据时,都将相同的代码推送到所有节点以运行MapReduce作业,因此Hadoop映射器和化简

  •   引言   借年底盛宴品鉴之风,继续抒我Hadoop之情,本篇 文章介绍如何对Hadoop的MapReduce进行 单元测试。MapReduce的开发周期差不多是这样:编写mapper和reducer、编译、打包、提交作业和结果检索等,这个过程比较繁琐,一旦提交到分布式环境出了问题要定位调试,重复这样的过程实在无趣,因此先对MapReduce做单元测试,消除明显的代码bug尤为必要。    MR

  • 在MapReduce中,map函数和reduce函数的独立测试是非常方便的,这是由函数风格决定的 。MRUnit是一个测试库,它便于将已知的输入传递给mapper或者检查reducer的输出是否符合预期。MRUnit与标准的执行框架(JUnit)一起使用。

  • 1.前言 在写完MR之后,通常都会自己造一些数据本地测一下保证基本逻辑没问题。这里使用MRUnit进行MR的单元测试 官网地址:https://mrunit.apache.org/              这里笨小葱使用MRUnit来测试一下最简单的WordCount的MR代码。 2.maven配置         这里需要注意 引入mrunit的jar包时需要加上<classifier>had

  • 1、参考 http://www.cnblogs.com/gpcuster/archive/2009/10/04/1577921.html http://conkeyn.iteye.com/blog/2028437 2、实战 官方文档 wiki:https://cwiki.apache.org/confluence/display/MRUNIT/MRUnit+Tutorial 具体配置: pom:

  • 引入MRUnit测试框架: pom.xml: <!-- https://mvnrepository.com/artifact/org.apache.mrunit/mrunit MRUnit测试 --> <dependency> <groupId>org.apache.mrunit</groupId> <artifactId>mrunit</artifactId> <ver

  • 简介 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。在MapReduce开发中,如果能对Mapper和Reducer进行详尽的单元测试,将及早发现问题,加快开发进度。 本文结合具体的例子,简单总结如何使用MRUnit来对Hadoop的Mapper和Reducer进行单元测试。本文的相关代码可以从Github获取:https://github.com/liujinguang

  • 一 .为什么使用MapReduce? 在Mapreduce中,map函数和reduce函数的独立测试非常方便,MRunit是一个测试库,它便于将已知的输入传递给mapper或者检查reducer的输出是否符合预期。这里由于主要体会MRunit.就用了最简单jing'dian的wordcount MRUnit需要与Junit一起使用 二 . MRUnit引入 (首先如果在windows下测试,还需要

 相关资料
  • 问题内容: 测试UI很困难。您认为Swing的最佳单元测试框架是什么? 问题答案: 我认为目前最好的是FEST。

  • 本文向大家介绍iOS单元测试框架有哪些?相关面试题,主要包含被问及iOS单元测试框架有哪些?时的应答技巧和注意事项,需要的朋友参考一下   OCUnit 是 OC 官方测试框架, 现在被 XCTest 所取代。 XCTest 是与 Foundation 框架平行的测试框架。 GHUnit 是第三方的测试框架。github地址 OCMock都是第三方的测试框架。github地址  

  • 本文向大家介绍详解python单元测试框架unittest,包括了详解python单元测试框架unittest的使用技巧和注意事项,需要的朋友参考一下 一:unittest是python自带的一个单元测试框架,类似于java的junit,基本结构是类似的。 基本用法如下: 1.用import unittest导入unittest模块 2.定义一个继承自unittest.TestCase的测试用例类

  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。

  • 英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其

  • 单元测试涉及测试软件应用程序的每个单元或单个组件。这是第一级软件测试。单元测试的目的是验证单元组件的性能。 单元是软件系统的单个可测试部分,并在应用程序软件的开发阶段进行测试。 此测试旨在测试隔离代码的正确性。单元组件是应用程序的单独功能或代码。白盒测试方法用于单元测试,通常由开发人员完成。 在测试级别层次结构中,单元测试是在集成和其他剩余测试级别之前完成的第一级测试。它使用模块进行测试,减少了等

  • 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Java 里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进

  • 我们从 Hello World 项目入手,增加单元测试功能。 我们新家了一个名为hello-world-test的 Gradle 项目。 环境 Gradle 3.4.1 Spring Boot 1.5.2.RELEASE Thymeleaf 3.0.3.RELEASE Thymeleaf Layout Dialect 2.2.0 Spring Security Test 4.2.2.RELEASE