throw new IOException("Cannot handle multiple inputs or outputs"
+ ", inputCount=" + inputs.size()
+ ", outputCount=" + outputs.size());
}
LogicalInput in = inputs.values().iterator().next();
LogicalOutput out = outputs.values().iterator().next();
initTask(out);
// Sanity check
if (!(in instanceof MRInputLegacy)) {
throw new IOException(new TezException(
"Only MRInputLegacy supported. Input: " + in.getClass()));
}
MRInputLegacy input = (MRInputLegacy)in;
input.init();
Configuration incrementalConf = input.getConfigUpdates();
if (incrementalConf != null) {
for (Entry<String, String> entry : incrementalConf) {
jobConf.set(entry.getKey(), entry.getValue());
}
}
KeyValueWriter kvWriter = null;
if ((out instanceof MROutputLegacy)) {
kvWriter = ((MROutputLegacy)out).getWriter();
} else if ((out instanceof OrderedPartitionedKVOutput)){
kvWriter = ((OrderedPartitionedKVOutput)out).getWriter();
} else {
throw new IOException("Illegal output to map, outputClass="
+ out.getClass());
}
if (useNewApi) {
runNewMapper(jobConf, mrReporter, input, kvWriter);
} else {