[ https://issues.apache.org/jira/browse/MAPREDUCE-6009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14166012#comment-14166012 ]
Sandy Ryza commented on MAPREDUCE-6009: --------------------------------------- Just to be conservative with changes, could we leave these in the if statement? {code} + if (conf.getUseNewReducer()) { + String mode = "new reduce API"; + ensureNotSet("mapred.output.format.class", mode); + ensureNotSet(oldReduceClass, mode); + } else { + String mode = "reduce compatability"; + ensureNotSet(JobContext.OUTPUT_FORMAT_CLASS_ATTR, mode); + ensureNotSet(JobContext.REDUCE_CLASS_ATTR, mode); + } {code} > Map-only job with new-api runs wrong OutputCommitter when cleanup scheduled > in a reduce slot > -------------------------------------------------------------------------------------------- > > Key: MAPREDUCE-6009 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6009 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: client, job submission > Affects Versions: 1.2.1 > Reporter: Gera Shegalov > Assignee: Gera Shegalov > Priority: Blocker > Attachments: MAPREDUCE-6009.v01-branch-1.2.patch > > > In branch 1 job commit is executed in a JOB_CLEANUP task that may run in > either map or reduce slot > in org.apache.hadoop.mapreduce.Job#setUseNewAPI there is a logic setting > new-api flag only for reduce-ful jobs. > {code} > if (numReduces != 0) { > conf.setBooleanIfUnset("mapred.reducer.new-api", > conf.get(oldReduceClass) == null); > ... > {code} > Therefore, when cleanup runs in a reduce slot, ReduceTask inits using the old > API and runs incorrect default OutputCommitter, instead of consulting > OutputFormat. -- This message was sent by Atlassian JIRA (v6.3.4#6332)