zoukankan      html  css  js  c++  java
  • Mapreduce(7)----单元测试

    1.MRUnit

    使用MRUnit框架进行单元测试,该框架对不同的测试对象使用不同的Driver,因此分为了:MapDriver、ReduceDriver和MapReduceDriver。

    2. 代码:

    (1)主要的包:

    import org.apache.hadoop.mrunit.mapreduce.MapDriver;
    import org.apache.hadoop.mrunit.mapreduce.ReduceDriver;
    import org.junit.Rule;
    import org.junit.Test;

     (2)代码主要部分:

    public class MRJobTest {
      private MapDriver<LongWritable,Text, Text, Text> mapDriver =
          MapDriver.newMapDriver(new MRJob.MRJobMapper());
      private ReduceDriver<Text, Text, Text, Text> reduceDriver = ReduceDriver.newReduceDriver(new MRJob.MRJobReducer());
    
      @Test
      public void testMap() throws IOException {
        mapDriver.addInput(new LongWritable(), new Text(
            "2	4	101,10")); //输入数据
        mapDriver.addInput(new LongWritable(), new Text(
            "3	5"));
        mapDriver.addInput(new LongWritable(), new Text(
            ""));
        assertEquals(7,mapDriver.run().size());  //执行map代码
    
      }
    
      @Test
      public void testReducer() throws IOException {
        reduceDriver.addInput(new Text("1"), Lists.newArrayList(new Text("101"), new Text("101"), new Text("303")));  //输入reduce数据
        reduceDriver.addInput(new Text("3"), Lists.newArrayList(new Text("101"), new Text("202"), new Text("303")));
    
        assertEquals(3, reduceDriver.run().size());  //执行reduce.run代码
        assertEquals("Expected 2 counter increment", 2, reduceDriver.getCounters()
            .findCounter(MRJob.MRJobCounter.LOW5).getValue());  //获取reduce中的自定义枚举名为MRJobCounter.LOW5的counter
    } }
  • 相关阅读:
    安卓模拟器BlueStacks 安装使用教程(图解)
    照相机滤镜使用,优化解码和滤镜导致的预览卡屏现象
    移动语音引擎相关开发笔记
    Linux下查看硬件信息的方法
    linux下彻底卸载mysql 图解教程
    linux下yum安装及配置
    mybatis中的resultMap
    项目管理模式之如何去除SVN标记
    myeclipse中的classpath
    Spring的AOP配置
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/13345517.html
Copyright © 2011-2022 走看看