Details
Description
In MultipleOutputs there is
private TaskAttemptContext getContext(String nameOutput) throws IOException { // The following trick leverages the instantiation of a record writer via // the job thus supporting arbitrary output formats. Job job = new Job(context.getConfiguration()); job.setOutputFormatClass(getNamedOutputFormatClass(context, nameOutput)); job.setOutputKeyClass(getNamedOutputKeyClass(context, nameOutput)); job.setOutputValueClass(getNamedOutputValueClass(context, nameOutput)); TaskAttemptContext taskContext = new TaskAttemptContextImpl(job.getConfiguration(), context.getTaskAttemptID()); return taskContext; }
so for every reduce call it creates a new Job instance ...which creates a new LocalJobRunner.
That does not sound like a good idea.
You end up with a flood of "jvm.JvmMetrics: Cannot initialize JVM Metrics with processName=JobTracker, sessionId= - already initialized"
This should probably also be added to 0.22.
Attachments
Attachments
Issue Links
- is related to
-
MAPREDUCE-2740 MultipleOutputs in new API creates needless TaskAttemptContexts
- Closed