Hi!

I am not sure if this question must be posted in the Hadoop forum or in the 
mongoDB one. Let´s try:

I am using the mongo-hadoop integration and wrote a MR job. I want to test it, 
and foud the framework MRUnit (https://mrunit.apache.org/), which sounds great.

I am facing some difficulties with it, since apparently there mongoDB classes 
are not supported by the framework (?).
A simple example:

public class MrUnitBasicTests {

    @Test
    public void testVeryBasicOneAttributeDocument() throws Exception {
        Mapper<Object, BSONObject, BSONObject, BSONObject> mapper = new 
Mapper<Object, BSONObject, BSONObject, BSONObject>(){
            @SuppressWarnings("unchecked")
            @Override
            protected void map(Object key, BSONObject value, 
org.apache.hadoop.mapreduce.Mapper.Context context)
                    throws IOException, InterruptedException {
                Object writeKey = createOutputKey();
                Object writeValue = createOutputValue();
                context.write(writeKey, writeValue);
            }
        };
        BSONObject input = new BasicDBObject("key", "value");
//        ParseMetadataAsTextIntoAvroMapper mapper = new 
ParseMetadataAsTextIntoAvroMapper();
        MapDriver<Object, BSONObject, BSONObject, BSONObject> mapDriver = 
MapDriver.newMapDriver(mapper);
        mapDriver.withInput(new LongWritable(1), input);
        mapDriver.withOutput(createOutputKey(), createOutputValue());
        mapDriver.runTest();
    }

    private BasicDBObject createOutputKey() {
        return new BasicDBObject("zonid", new 
ObjectId("5179577adb2da69ad0ee98e9"));
    }

    private BasicDBObject createOutputValue() {
        return new BasicDBObject("key", "value");
    }
}


And the exception:
java.lang.IllegalStateException: No applicable class implementing Serialization 
in conf at io.serializations for class com.mongodb.BasicDBObject

The io.serializations configuration property contains WritableSerialization 
which implements org.apache.hadoop.io.serializer.Serialization
I saw that the com.mongodb.BasicDBObject implements the java.io.Serializable.

Is there any connection among them? How could I go on with the tests? Any 
experience with it?

Many thanks


Reply via email to