setting up configuration in mrunit

796 Views Asked by At

I have been searching in mrunit documentation but hasnt been able to find it so far.. How do i pass configuration parameters in my mrunit.

So for example, if i take the wordcount example.

Lets say, in my driver code I am setting this parameter...

conf.set("delimiter",args[2])

And in my mapper code I am calling this as:

String delimiter = conf.get("delimiter");
String [] tokens = value.toString().split(delimiter);
for (String token:tokens)
   context.write(token,one);

How do I set up this configuration parameter.

I have been looking into this example: https://github.com/wpm/Hadoop-Word-Count/blob/master/src/test/java/wpmcn/hadoop/WordCountTest.java

Thanks

2

There are 2 best solutions below

1
On

Use MapDriver.withConfiguration

 Configuration conf = new Configuration();
 conf.set("delimiter", someValue);
 myMapDriver.withConfiguration(conf);
0
On

I had similar problem and I solved it as given in below code.

mapDriver.withInput(key, value);
mapDriver.getConfiguration().set("my.config.param", "my.config.param.value");
.....
.....
mapDriver.run();

Please note that mapDriver.getContext().getConfiguration may not work in this case, because the context object is a mocked object in the API.