运用MRUnit测试mapper和reducer

MRUnit可以花费时间少,并且可以分别测试mapper和reducer

步骤:

1、  运用MRUnit测试mapper和reducer

2、  执行mapreduce代码的本地化测试

3、  使用hadoop日志

4、  通过计数器跟踪执行指标

Testing Mapper的过程

1、  实例化mapdirver类,作为测试中mapper被参数化

2、  调用withmapper方法来添加想要测试的mapper实例

3、  根据情况选择withconfiguration方法设置mapper的配置文件

4、  调用withinput方法来传递所需的key和value

5、  通过调用withoutput方法设置期望的输出内容

6、  调用功能rantest方法将设置的输入值传递给mapper

Testing Reducer的过程

1、  首先创建一个用做reducer输入的intwritable对象列表

2、  实例化reducedriver对象

3、  调用withreduce方法来设置要测试的reducer实例

4、  通过withconfiguration来传递想要的配置

5、  调用withinput方法可以将输入值传递给reducer

6、  调用withoutput方法来设置期望的reducer输出

7、  最后调用runtest方法,把设置的输入传递给reducer

时间: 2024-10-05 12:07:15

运用MRUnit测试mapper和reducer的相关文章

关于Mapper、Reducer的个人总结(转)

Mapper的处理过程: 1.1. InputFormat 产生 InputSplit,并且调用RecordReader将这些逻辑单元(InputSplit)转化为map task的输入.其中InputSplit是map task处理的最小输入单元的逻辑表示. 1.2. 在客户端代码中调用Job类来设置参数,并执行在hadoop集群的上的MapReduce程序. 1.3. Mapper类在Job中被实例化,并且通过MapContext对象来传递参数设置.可以调用Job.getConfigurat

Hadoop-2.4.1学习之Mapper和Reducer

MapReduce允许程序员能够容易地编写并行运行在大规模集群上处理大量数据的程序,确保程序的运行稳定可靠和具有容错处理能力.程序员编写的运行在MapReduce上的应用程序称为作业(job),Hadoop既支持用Java编写的job,也支持其它语言编写的作业,比如Hadoop Streaming(shell.python)和Hadoop Pipes(c++).Hadoop-2.X不再保留Hadoop-1.X版本中的JobTracker和TaskTracker组件,但这并不意味着Hadoop-2

Mapper类/Reducer类中的setup方法和cleanup方法以及run方法的介绍

在hadoop的源码中,基类Mapper类和Reducer类中都是只包含四个方法:setup方法,cleanup方法,run方法,map方法.如下所示: 其方法的调用方式是在run方法中,如下所示: 可以看出,在run方法中调用了上面的三个方法:setup方法,map方法,cleanup方法.其中setup方法和cleanup方法默认是不做任何操作,且它们只被执行一次.但是setup方法一般会在map函数之前执行一些准备工作,如作业的一些配置信息等:cleanup方法则是在map方法运行完之后最

MapReduce源码分析:Mapper和Reducer类

一:Mapper类 在Hadoop的mapper类中,有4个主要的函数,分别是:setup,clearup,map,run.代码如下: protected void setup(Context context) throws IOException, InterruptedException { // NOTHING } protected void map(KEYIN key, VALUEIN value, Context context) throws IOException, Interr

Mapper与Reducer浅析

一.      Mapper Mapper接口负责数据处理阶段,它采用的形式为Mapper<K1,V1,K2,V2>Java泛型,这里键类和值类分别实现WritableComparable和Writable接口. Mapper只有一个方法-map,用于处理一个单独的键.值对. Void map(K1key,V1 value,OutputCollector<K2,V2> output,Reporter reporter) throwsIOException该函数处理一个给定的键/值对

[hadoop入门]mapper与reducer

1.mapper #!/usr/bin/env python import sys for line in sys.stdin: line = line.strip() words = line.split() for word in words: print "%s\t%s" % (word, 1) 2.reducer #!/usr/bin/env python from operator import itemgetter import sys current_word = Non

Hadoop 2.x从零基础到挑战百万年薪第一季

鉴于目前大数据Hadoop 2.x被企业广泛使用,在实际的企业项目中需要更加深入的灵活运用,并且Hadoop 2.x是大数据平台处理 的框架的基石,尤其在海量数据的存储HDFS.分布式资源管理和任务调度YARN及分布式计算框架MapReduce.然而当前众多书籍和 视频教程资料中,没有一套完整的.深入浅出的.实战性操作强的一套资料,一此种情况下,结合鄙人多年实际项目经验,以项目中 使用为主线,编纂筹划此套Hadoop 2.x从零基础到项目实战的课程,带领大家从零基础开始上手,到如何理解HDFS.

hadoop编程小技巧(8)---Unit Testing (单元测试)

所需环境: Hadoop相关jar包(下载官网发行版即可): 下载junit包(最新为好): 下载mockito包: 下载mrunit包: 下载powermock-mockito包: 相关包截图如下(相关下载参考:http://download.csdn.net/detail/fansy1990/7690977): 应用场景: 在进行Hadoop的一般MR编程时,需要验证我们的业务逻辑,或者说是验证数据流的时候可以使用此环境,这个环境不要求真实的云平台,只是针对算法或者代码逻辑进行验证,方便调试

Hadoop MapReduce计算框架

1.MapReduce理论 1.1.MapReduce是什么? MapReduce用于处理海量数据的分布式计算框架,是Hadoop生态中的核心之一(MapReduce用于计算海量数据,HDFS用于存储海量数据):MapReduce是谷歌公司在研究如何处理海量数据所提出的一种面向大规模数据处理的并行计算模型和方法. 1.2.MapReduce概述 MapReduce是一个计算框架,用于对大数据进行处理,它的主要思想就是"分而治之":整个MapReduce计算过程可以分为Map(映射)阶段