文档章节

MRUNIT hadoop逐步调试工具!

蓝狐乐队
 蓝狐乐队
发布于 2014/06/05 09:27
字数 556
阅读 63
收藏 0
点赞 0
评论 0

MRUNIT hadoop MapReduce逐步调试工具!

MRUnit简介
MRUnit是一款由Couldera公司开发的专门针对Hadoop中编写MapReduce单元测试的框架。可以用MapDriver单独测试
Map,用ReduceDriver单独测试Reduce,用MapReduceDriver测试MapReduce作业。
实战
我们将利用MRUnit对本系列上篇文章MapReduce基本编程中的字数统计功能进行单元测试。
加入MRUnit依赖<dependency>
<groupId>com.cloudera.hadoop</groupId>
<artifactId>hadoop-mrunit</artifactId>
<version>0.20.2-320</version>
<scope>test</scope>
</dependency>
单独测试Map
public class WordCountMapperTest {
private Mapper mapper;
private MapDriver driver;
@Before
public void init(){
mapper = new WordCountMapper();
driver = new MapDriver(mapper);
}
@Test
public void test() throws IOException{
String line = "Taobao is a great website";
driver.withInput(null,new Text(line))
.withOutput(new Text("Taobao"),new IntWritable(1))
.withOutput(new Text("is"), new IntWritable(1))
.withOutput(new Text("a"), new IntWritable(1))
.withOutput(new Text("great"), new IntWritable(1))
.withOutput(new Text("website"), new IntWritable(1))
.runTest();
}
}
上面的例子通过MapDriver的withInput和withOutput组织map函数的输入键值和期待的输出键值,通过runTest方法运行
作业,测试Map函数。测试运行通过。
单独测试Reduce
public class WordCountReducerTest {
private Reducer reducer;
private ReduceDriver driver;
@Before
public void init(){
reducer = new WordCountReducer();
driver = new ReduceDriver(reducer);
}
@Test
public void test() throws IOException{
String key = "taobao";
List values = new ArrayList();

values.add(new IntWritable(2));
values.add(new IntWritable(3));
driver.withInput(new Text("taobao"), values)
.withOutput(new Text("taobao"), new IntWritable(5))
.runTest();
}
}
上面的例子的测试Map函数的写法类似,测试reduce函数,
因为reduce函数实现相加功能,因此我们假设输入为<taobao,[2,3]>,
则期待结果应该为<taobao,5>.测试运行通过。
测试MapReduce
public class WordCountTest {
private Mapper mapper;
private Reducer reducer;
private MapReduceDriver driver;
@Before
public void init(){
mapper = new WordCountMapper();
reducer = new WordCountReducer();
driver = new MapReduceDriver(mapper,reducer);
}
@Test
public void test() throws RuntimeException, IOException{
String line = "Taobao is a great website, is it not?";
driver.withInput("",new Text(line))
.withOutput(new Text("Taobao"),new IntWritable(1))
.withOutput(new Text("a"),new IntWritable(1))
.withOutput(new Text("great"),new IntWritable(1))
.withOutput(new Text("is"),new IntWritable(2))
.withOutput(new Text("it"),new IntWritable(1))
.withOutput(new Text("not"),new IntWritable(1))
.withOutput(new Text("website"),new IntWritable(1))
.runTest();
}
}
这次我们测试MapReduce的作业,通过MapReduceDriver的withInput构造map函数的输入键值,通过withOutput构造
reduce函数的输出键值。来测试这个字数统计功能,这次运行测试时抛出了异常,测试没有通过但没有详细junit异常信
息,在控制台显示


© 著作权归作者所有

共有 人打赏支持
蓝狐乐队
粉丝 97
博文 318
码字总数 89120
作品 0
昌平
程序员
Hadoop编写调试MapReduce程序详解

编程学习,最好的方法还是自己动手,所以这里简单介绍在Hadoop上编写调试一个MapReduce程序。 先说一下我的开发环境,我的操作系统是Centos6.0,Hadoop版本是0.20.2,开发环境是eclipse。在H...

miaosu ⋅ 2013/03/20 ⋅ 3

hadoop 开发环境搭建

hadoop 开发环境搭建 (ubuntu + idea ) @(hadoop笔记)[idea 开发环境] 基于ubuntu 和 idea 搭建 hadoop开发环境,其实是搭建MR的开发环境。这里简单说一下为什么采用idea,就因为一点,ide...

OttoWu ⋅ 2016/12/13 ⋅ 0

运行mrunit报错问题解决

在看hadoop权威指南的时候,运行mrunit的例子(MaxTemperatureMapperTest)的时候,报出一个异常,网上查了资料后,是mrunit的版本问题,可以结合hadoop的版本,找到对应的mrunit的版本。 另...

彭苏云 ⋅ 2016/03/12 ⋅ 0

Apache MRUnit 1.1 发布,MapReduce 单元测试

Apache MRUnit 1.1 发布了,MRUnit是由Couldera公司开发的专门针对 Hadoop中编写MapReduce单元测试的框架,基本原理是JUnit4和EasyMock。MR就是Map和Reduce的缩写。MRUnit框架非常精简,其核...

oschina ⋅ 2014/06/09 ⋅ 2

MapReduce单元测试框架--MRUnit

MRUnit是由Couldera公司开发的专门针对 Hadoop中编写MapReduce单元测试的框架,基本原理是JUnit4和 EasyMock。MR就是Map和Reduce的缩写。MRUnit框架非常精简,其核心的单元测试依赖于JUnit。...

匿名 ⋅ 2010/05/20 ⋅ 0

Apache MRUnit 0.8.0-incubating

Apache MRUnit 团队今天发布了 MRUnit 0.8.0-incubating 版本,这是 MRUnit 的第二个发行版本。 下载地址: http://www.apache.org/dyn/closer.cgi/incubator/mrunit/ 改进记录: https://is...

红薯 ⋅ 2012/02/03 ⋅ 0

利用MRUnit进行MapReduce单元测试

一、MRUnit简介 官网地址:https://mrunit.apache.org/ Apache MRUnit ™ is a Java library that helps developers unit test Apache Hadoop map reduce jobs. MRUnit是一个帮助开发者测试m......

cloud-coder ⋅ 2014/06/29 ⋅ 1

MRUnit 0.8.1-incubating 发布

Apache MRUnit 团队今天发布了 MRUnit 0.8.1-incubating版本。 下载地址: http://www.apache.org/dyn/closer.cgi/incubator/mrunit/ 改进记录: https://issues.apache.org/jira/browse/MR......

晨曦之光 ⋅ 2012/03/12 ⋅ 0

Apache MRUnit 0.5-incubating 发布

这是 Apache MRUnit 的第一次发布的版本,MRUnit 是帮助开发者做 Apache Hadoop MapReduce 任务单元测试的 Java 库。 下载地址: http://www.apache.org/dyn/closer.cgi/incubator/mrunit/ 完...

红薯 ⋅ 2011/11/28 ⋅ 0

Apache MRUnit 0.9.0-incubating

Apache MRUnit 0.9.0-incubating 发布了,该版本目前仍处于孵化阶段,改进记录请看: https://issues.apache.org/jira/browse/MRUNIT/fixforversion/12316360 MRUnit是由Couldera公司开发的专...

红薯 ⋅ 2012/05/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 20分钟前 ⋅ 1

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部