hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Lowe (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MAPREDUCE-5812) Make job context available to OutputCommitter.isRecoverySupported()
Date Mon, 28 Apr 2014 15:28:19 GMT

     [ https://issues.apache.org/jira/browse/MAPREDUCE-5812?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Jason Lowe updated MAPREDUCE-5812:

       Resolution: Fixed
    Fix Version/s: 2.5.0
           Status: Resolved  (was: Patch Available)

Thanks, Mohammad!  I committed this to trunk and branch-2.

>  Make job context available to OutputCommitter.isRecoverySupported()
> --------------------------------------------------------------------
>                 Key: MAPREDUCE-5812
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5812
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: mr-am
>    Affects Versions: 2.3.0
>            Reporter: Mohammad Kamrul Islam
>            Assignee: Mohammad Kamrul Islam
>             Fix For: 3.0.0, 2.5.0
>         Attachments: MAPREDUCE-5812.1.patch, MAPREDUCE-5812.2.patch, MAPREDUCE-5812.3.patch,
MAPREDUCE-5812.4.patch, MAPREDUCE-5812.5.patch, MAPREDUCE-5812.6.patch, MAPREDUCE-5812.7.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

View raw message