文档章节

MapReduce单元测试-mrunit

赛德克巴万
 赛德克巴万
发布于 2017/04/27 18:21
字数 410
阅读 36
收藏 0

        最近项目需要用到MapReduce进行一个需求开发,对于一个初学者来说,任何入门的知识都可以通过www.baidu.com获取。但是,百度并不能够帮我们百分百的理解原理性的东西,因为任何一个框架、插件、源代码,并不仅仅是System.out.print("Hello World !");这么简单。

         通过mrunit,可以帮助我们做mapreduce的单元测试,验证程序以及代码逻辑,what`s more,还对我们理解mapreduce有很大的帮助。

        首先,我是在https://my.oschina.net/cloudcoder/blog/285151初步了解MapReduceDriver的使用,了解完之后,再来说说我在使用mrunit的一点心得。

         在我的MapReduce程序中,需要做全局数据共享,可了解DistributedCache,在新的hadoop版本中,已经集成到job里,直接调用addCacheFile即可实现文件共享(文件在hdfs上面);而全局变量共享,通过 Configuration  的set函数即可实现。

         对于mrunit,回调用到mapper.class的set跟map函数,所以MapReduceDriver也要将共享文件通过addCacheFile传到mapper.class的set函数中。代码如下:

        

        MapReduceDriver<LongWritable, Text, Text, Text, Text, Text> mapReduceDriver = MapReduceDriver.newMapReduceDriver(new Mapper(), new Reducer());

            Configuration conf = new Configuration();
            conf.set("args[0]", "1");

            // 必须先setConfiguration,再addCacheFile
            mapReduceDriver.setConfiguration(conf);
            mapReduceDriver.addCacheFile("sample.txt");前期工作准备好之后,就可以对map的输入输出进行单元测试。

         输入可以通过MapReduceDriver的withInput函数实现。

         输出的预期结果可以通过MapReduceDriver的withOutput函数实现。

         最后,要调用MapReduceDriver的runTest运行。示例代码如下:

        mapReduceDriver.withInput(new LongWritable(),
                new Text("benjarmin,jack,benjarmin"));

        mapReduceDriver.withOutput(new Text("benjarmin"),new Text("2"));
        mapReduceDriver.withOutput(new Text("jack"),new Text("1"));

        mapReduceDriver.runTest();

© 著作权归作者所有

赛德克巴万
粉丝 0
博文 25
码字总数 19135
作品 0
广州
私信 提问
Hadoop编写调试MapReduce程序详解

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

miaosu
2013/03/20
12K
3
Apache MRUnit 1.1 发布,MapReduce 单元测试

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

oschina
2014/06/09
1K
1
[Hadoop]Hadoop单元测试MRUnit

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/53523652 在MapReduce中,map函数和reduce函数的独立测试是非常方便的,这是由函...

sjf0115
2016/12/08
0
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
521
0
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
220
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
4
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
6
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
4
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
993
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部