This can't be given the JobConf, at least, not in any situation that matters. It uses the conf to serialize and deserialize. For serialization we can indeed set the conf, but for deserialization that is handled by hadoop on the mapper/reducer side of things, and then the RecordReader is just given that. So new Configuration() has to work on the mapper/reducer, but on the client side it should indeed be consistent.