标签: mrunit

什么是mrunit的继任者?

今天我发现ASF退役了mrunit(参见https://blogs.apache.org/foundation/entry/the_apache_news_round_up85https://issues.apache.org/jira/browse/HADOOP-3733主页本身).除了"不活动"之外没有给出任何理由,所以我想必须有另一种选择吗?

将来应该使用什么代替mrunit来测试mapreduce工作呢?

unit-testing hadoop mapreduce mrunit

16
推荐指数
2
解决办法
1820
查看次数

MRunit:如何测试自定义排序比较器?

我正在尝试使用MRunit来测试我的sortComparatorClass.似乎MRunit应该能够使用该setKeyOrderComparator方法执行此操作,但是当我运行mapReduceDriver它时,它不会调用类的compare()方法SortComparator.
很确定我在使用MRunit API做错了.

这是我的单元测试代码:

public class UnitTests {

private static transient Log log = LogFactory.getLog(UnitTests.class);

MapReduceDriver<Text, Text, Text, Text, Text, Text> mapReduceDriver;
MapDriver<Text, Text, Text, Text> mapDriver;
ReduceDriver<Text, Text, Text, Text> reduceDriver;

@Before
public void setUp() throws InterruptedException, IOException {
    mapDriver = new MapDriver<Text, Text, Text, Text>();
    mapDriver.setMapper(new TestMapper());
    reduceDriver = new ReduceDriver<Text, Text, Text, Text>();
    reduceDriver.setReducer(new TestReducer());
    mapReduceDriver = new MapReduceDriver(new TestMapper(), new TestReducer());
    mapReduceDriver.setKeyOrderComparator(new TestSortCompartor());
}

@Test
public …
Run Code Online (Sandbox Code Playgroud)

hadoop mrunit

8
推荐指数
0
解决办法
438
查看次数

在没有hadoop设置的Windows上进行蜂巢单元测试

我想看看是否有办法在没有hadoop/hive/cygwin设置的情况下在Windows中运行Hive单元测试(即单元测试hive查询).遇到这些开源工具(Hive_runner,HiveTest),尝试在Eclipse中运行hiverunner作为maven项目,其JUnit测试失败并出现以下警告和错误

警告:无法为您的平台加载native-hadoop库....使用内置的java类(如果适用).错误:无法设置路径权限?到0700

谢谢Srivatsan Nallazhagappan

junit hadoop hive mrunit

7
推荐指数
1
解决办法
1152
查看次数

使用MRUnit测试多个输出

有没有一种方法来测试减少类MRUnit使用MultipleOutputFormat写入到多个输出文件?

java hadoop mapreduce reducers mrunit

6
推荐指数
1
解决办法
3668
查看次数

如何使用MRUnit Test进行Mapper测试?

我是Hadoop的新手.我想使用MRUnit Test单独测试我的映射器部件.我已经尝试了很多.但我不知道如何解决以下错误 -
"MapDriver类型中的方法setMapper(Mapper)不适用于参数(Recommand.IdIndexMapper)".我使用的是Hadoop-1.2.1,Eclipse Juno,mrunit-1.0.0-hadoop1.jar,junit-4.11,mockito-all-1.9.5.jar.贝娄是我的代码,

我的Mapper类:
类名:推荐,

public static class IdIndexMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, Text>{

        public void map(LongWritable key, Text val, OutputCollector<Text, Text> output,Reporter reporter)throws IOException{
            String[] ids;
            String ln=val.toString();
            ids=ln.split("\t");
            output.collect(new Text(ids[0]),new Text(ids[1]));
   // System.out.println(ids[0]+" "+ids[1]);

    }
Run Code Online (Sandbox Code Playgroud)

我的测试代码:

package org.apache.hadoop.examples;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;



import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.examples.WordCount.IntSumReducer;
//import org.apache.hadoop.examples.WordCount.TokenizerMapper;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.junit.Before;
import org.junit.Test;
import org.myorg.Recommand.IdIndexMapper;

public class RecomTest { …
Run Code Online (Sandbox Code Playgroud)

java eclipse hadoop hadoop-streaming mrunit

5
推荐指数
1
解决办法
1589
查看次数

MRunit依赖最新的cloudera存储库

我找不到最新mrunit(1.1.0)Cloudera存储库.可用的是0.8.0-incubating.以下是我的pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ma.hadoop</groupId>
    <artifactId>MapReduce</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <hadoop.version>2.3.0-cdh5.1.2</hadoop.version>
        <hive.version>0.12.0-cdh5.1.2</hive.version>
        <mrunit.version>0.8.0-incubating</mrunit.version>
    </properties>
    <dependencies>
        <!-- For unit testing -->
        <dependency>
            <groupId>org.apache.mrunit</groupId>
            <artifactId>mrunit</artifactId>
            <version>${mrunit.version}</version>
        </dependency>
        <!-- This is sufficient for all -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>Mapred</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <outputDirectory>${basedir}</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository> …
Run Code Online (Sandbox Code Playgroud)

mapreduce repository mrunit cloudera-cdh

5
推荐指数
1
解决办法
1252
查看次数

MRUnit与序列化中的Avro NullPointerException

我正在尝试使用MRUnit测试Hadoop .mapreduce Avro作业.我收到一个NullPointerException,如下所示.我附上了一部分pom和源代码.任何援助将不胜感激.

谢谢

我得到的错误是:

java.lang.NullPointerException
at org.apache.hadoop.mrunit.internal.io.Serialization.copy(Serialization.java:73)
at org.apache.hadoop.mrunit.internal.io.Serialization.copy(Serialization.java:91)
at org.apache.hadoop.mrunit.internal.io.Serialization.copyWithConf(Serialization.java:104)
at org.apache.hadoop.mrunit.TestDriver.copy(TestDriver.java:608)
at org.apache.hadoop.mrunit.MapDriverBase.setInputKey(MapDriverBase.java:64)
at org.apache.hadoop.mrunit.MapDriverBase.setInput(MapDriverBase.java:104)
at org.apache.hadoop.mrunit.MapDriverBase.withInput(MapDriverBase.java:218)
at org.lab41.project.mapreduce.ParseMetadataAsTextIntoAvroTest.testMap(ParseMetadataAsTextIntoAvroTest.java:115)
.....
Run Code Online (Sandbox Code Playgroud)

pom片段:

<dependency>
    <groupId>org.apache.mrunit</groupId>
    <artifactId>mrunit</artifactId>
    <version>0.9.0-incubating</version>
    <classifier>hadoop2</classifier>
    <scope>test</scope>
</dependency>


<avro.version>1.7.4</avro.version>
<hadoop.version>2.0.0-mr1-cdh4.1.3</hadoop.version>

<dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro</artifactId>
    <version>${avro.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>${hadoop.version}</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>${hadoop.version}</version>
    <scope>provided</scope>
 </dependency>
 <dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro-mapred</artifactId>
    <version>${avro.version}</version>
    <classifier>hadoop2</classifier>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

以下是测试的摘录:

import static org.junit.Assert.*;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import org.apache.avro.mapred.AvroKey;
import org.apache.avro.hadoop.io.AvroSerialization;
import org.apache.avro.mapred.AvroValue; …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce avro mrunit

4
推荐指数
1
解决办法
3452
查看次数

MRUnit - 未按预期工作

我只有mapper类来创建用于批量加载到HBase的文件,我已经为单元测试编写了一个MRUnit.

虽然预期结果和重新结果相同,但MRUnit失败并显示"缺少预期输出"消息 .

预期产量: (4b 65 79 31, {"totalColumns":1,"families":{"default":[{"timestamp":9223372036854775807,"qualifier":"default","vlen":6}]},"row":"Key1"})

实际产量: (4b 65 79 31, {"totalColumns":1,"families":{"default":[{"timestamp":9223372036854775807,"qualifier":"default","vlen":6}]},"row":"Key1"})

我哪里错了?是不是ImmutableBytesWritable或Put有问题?

hadoop hbase mrunit

3
推荐指数
1
解决办法
1404
查看次数

为什么mrunit 1.1.0 jar在Maven中央存储库中不可用

我尝试在maven项目中使用mrunit测试我的MapReduce 2作业.我从Maven中央仓库搜索并找到了结果:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.mrunit%22%20AND%20a%3A%22mrunit%22

在上面的链接,最新mrunit 1.1.0有hadoop1.jarhadoop2.jar,而不是一个罐子链接.正是由于这个原因,当我尝试添加相应的依赖项时

<dependency>
  <groupId>org.apache.mrunit</groupId>
  <artifactId>mrunit</artifactId>
  <version>1.1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

pom.xml和运行mvn package,我得到了以下编译错误: Could not find artifact org.apache.mrunit:mrunit:jar:1.1.0 in central (https://repo.maven.apache.org/maven2 ...

任何人都可以帮助解决这个问题吗?提前致谢

maven mrunit hadoop-2.7.2

3
推荐指数
1
解决办法
597
查看次数

MRUnit在hbase Result对象中传递值

我正在使用MRUnit测试我的映射器。我正在传递键和值列表作为测试类向映射器的输入。问题是 :

String key=1234_abc;
ArrayList<KeyValue> list = new ArrayList<KeyValue>();
KeyValue k1 = new KeyValue(Bytes.toBytes(key),"cf".getBytes(), "Val1".getBytes(),Bytes.toBytes("abc.com"));
KeyValue k2 = new KeyValue(Bytes.toBytes(key), "cf".getBytes(), "Val2".getBytes(),Bytes.toBytes("165"));
Result result = new Result(list);
mapDriver.withInput(key, result); 
Run Code Online (Sandbox Code Playgroud)

问题在于,在结果对象中仅保留了第一个键值。其他被存储为空。

java hbase mrunit

0
推荐指数
1
解决办法
767
查看次数