[ 
https://issues.apache.org/jira/browse/MAPREDUCE-5812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13980214#comment-13980214
 ] 

Jason Lowe commented on MAPREDUCE-5812:
---------------------------------------

The TestRMContainerAllocator test failure is a known issue, see MAPREDUCE-5749.

The patch looks good overall, but we need one more fix.  We really should 
annotate the original isRecoverySupported() methods as Deprecated so new 
derivations will implement the JobContext form and new callers know they should 
call the JobContext form.

>  Make task context available to OutputCommitter.isRecoverySupported()
> ---------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5812
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5812
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mr-am
>    Affects Versions: 2.3.0
>            Reporter: Mohammad Kamrul Islam
>            Assignee: Mohammad Kamrul Islam
>         Attachments: MAPREDUCE-5812.1.patch, MAPREDUCE-5812.2.patch, 
> MAPREDUCE-5812.3.patch, MAPREDUCE-5812.4.patch, MAPREDUCE-5812.5.patch
>
>
> Background
> ==========
> The system like Hive provides its version of  OutputCommitter. The custom 
> implementation of isRecoverySupported() requires task context. From 
> taskContext:getConfiguration(), hive checks if  hive-defined specific 
> property is set or not. Based on the property value, it returns true or 
> false. However, in the current OutputCommitter:isRecoverySupported(), there 
> is no way of getting task config. As a result, user can't  turn on/off the 
> MRAM recovery feature.
> Proposed resolution:
> ===============
> 1. Pass Task Context into  isRecoverySupported() method.
> Pros: Easy and clean
> Cons: Possible backward compatibility issue due to aPI changes. (Is it true?)
> 2. Call outputCommitter.setupTask(taskContext) from MRAM: The new 
> OutputCommitter will store the context in the class level variable and use it 
> from  isRecoverySupported() 
> Props: No API changes. No backward compatibility issue. This call can be made 
> from MRAppMaster.getOutputCommitter() method for old API case.
> Cons: Might not be very clean solution due to class level variable.
> Please give your comments.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to