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
