[ 
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)

Reply via email to