hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhijie Shen (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (MAPREDUCE-4942) mapreduce.Job has a bunch of methods that throw InterruptedException so its incompatible with MR1
Date Fri, 14 Jun 2013 23:12:21 GMT

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

Zhijie Shen resolved MAPREDUCE-4942.
------------------------------------

    Resolution: Fixed

Close the ticket. Actually, these methods are binary compatible with both MRv1 and 0.23. However,
due to the conflicting method signature (throwing or not throwing InterruptedException), these
methods are source incompatible either with MRv1 or 0.23.

Again, it is better be compatible with MRv1, as it has larger user base, while 0.23 users
don't need much change to fix the code. Assume that a MRv1 application is not binary compatible
because of mapreduce.Counter, whose binary incompatibility will not be fixed. The user can
recompile the code against MRv2 jars, and recompilation will not fail at mapreduce.Job given
this ticket fixed.

Will document this imcompatible change in MAPREDUCE-5184 as well.
                
> mapreduce.Job has a bunch of methods that throw InterruptedException so its incompatible
with MR1
> -------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-4942
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4942
>             Project: Hadoop Map/Reduce
>          Issue Type: Sub-task
>          Components: mrv2
>    Affects Versions: 2.0.2-alpha
>            Reporter: Robert Kanter
>            Assignee: Robert Kanter
>             Fix For: 2.1.0-beta
>
>         Attachments: MAPREDUCE-4942.patch
>
>
> The following methods in MR2's {{org.apache.hadoop.mapreduce.Job}} throw an {{InterruptedException}}
but don't in MR1, which makes them incompatible.  (Their Javadoc comments are also missing
that they throw an {{InterruptedException}} anyway)
> I propose that we wrap the {{InterruptedException}} in a {{RuntimeException}}.  
> {code}
> public float setupProgress() throws IOException, InterruptedException
> public float mapProgress() throws IOException, InterruptedException
> public float reduceProgress() throws IOException, InterruptedException
> public boolean isComplete() throws IOException, InterruptedException
> public boolean isSuccessful() throws IOException, InterruptedException
> public void killJob() throws IOException, InterruptedException
> public void killTask(org.apache.hadoop.mapreduce.TaskAttemptID) throws IOException, InterruptedException
> public void failTask(org.apache.hadoop.mapreduce.TaskAttemptID) throws IOException, InterruptedException
> public Counters getCounters() throws IOException, InterruptedException
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message