I'm not sure I follow the 2nd half?

I don't think you need to ever invoke `new Configuration()` in this utility.

Both client side and on the cluster, you're always given access to something that can get you the shared configuration. I'm not even sure if `new Configuration()` on the cluster will be populated with what was set on the client side -- do you know if it picks that up?

Client-side, the getSplits() method is given access to the config, so that's what should be used.
Cluster-side, the getRecordReader() method is handed something with access to the conf, as is the map() and reduce() function. I think we should thread both those all the way through (looks like you already have) and not trust `new Configuration()`, instead throwing a RuntimeException if setConf() isn't called properly.

What do you think?