MRUnit с Avro NullPointerException в сериализации

я пытаюсь проверить работу Hadoop .mapreduce Avro с помощью MRUnit. Я получаю исключение 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)
.....

фрагмент кода:


    org.apache.mrunit
    mrunit
    0.9.0-incubating
    hadoop2
    test



1.7.4
2.0.0-mr1-cdh4.1.3


    org.apache.avro
    avro
    ${avro.version}



    org.apache.hadoop
    hadoop-client
    ${hadoop.version}
    provided


    org.apache.hadoop
    hadoop-core
    ${hadoop.version}
    provided
 
 
    org.apache.avro
    avro-mapred
    ${avro.version}
    hadoop2
 

Вот выдержка из теста:

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;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.apache.hadoop.mrunit.types.Pair;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.lab41.project.domain.DataRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ParseMetadataAsTextIntoAvroTest {

    Logger logger = LoggerFactory
            .getLogger(ParseMetadataAsTextIntoAvroTest.class);
    private MapDriver mapDriver;

    @BeforeClass
    public static void setUpClass() {
    }

    @AfterClass
    public static void tearDownClass() {
    }

    @Before
    public void setUp() throws IOException {
        ParseMetadataAsTextIntoAvroMapper mapper = new ParseMetadataAsTextIntoAvroMapper();

        mapDriver = new MapDriver();
        mapDriver.setMapper(mapper);
        mapDriver.getConfiguration().setStrings("io.serializations", new String[]{  
            AvroSerialization.class.getName()
        });
    }

    @Test
    public void testMap() throws ParseException, IOException {
        Text testInputText = new Text(test0);

        DataRecord record = new DataRecord();
       ….

        AvroKey expectedPivot = new AvroKey(1L);
        AvroValue expectedRecord = new AvroValue(record);

        mapDriver.withInput(new Pair(new LongWritable(1), testInputText));
        mapDriver.withOutput(new Pair(expectedPivot, expectedRecord));
        mapDriver.runTest();

    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос