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

Tom White commented on MAPREDUCE-954:
-------------------------------------

Thanks for the new patch, Arun. Can we mark the interfaces as "Public 
Evolving"? This would overcome the problems with API evolvability.

Some other feedback:

* I'm not sure that WrappedMapper and WrappedReducer belong in a "lib" package, 
since the classes in "lib" are user-facing, and these are framework classes. 
(People might see them and wonder how they can use a WrappedMapper in their 
application, for example.) They would be better in the task package I think.
* Can we move org.apache.hadoop.mapreduce.task to 
org.apache.hadoop.mapreduce.server.task to better emphasise that this is 
non-user code. This reflects the packaging of HDFS more, where things that run 
on the cluster are under a "server" package. We should have another JIRA to 
move org.apache.hadoop.mapreduce.task.reduce to 
org.apache.hadoop.mapreduce.server.task.reduce.
* It's a shame JobContextImpl is public and in org.apache.hadoop.mapreduce 
since users shouldn't be exposed to it. Can we move it to another package?
* Since Job extends JobContextImpl you don't need the changes that change the 
{{\*_ATTR}} constants (e.g. {{OUTPUT_FORMAT_CLASS_ATTR}}) to 
{{JobContextImpl.\*_ATTR}} - they can be referred to directly.
* What's the compatibility story for previous releases? Would a 0.20 MR program 
written to the new ("mapreduce" package) API work with the new interfaces 
unchanged? What about a 0.20 program using the old MR API - will it continue to 
work with the old MR API with these changes?

> The new interface's Context objects should be interfaces
> --------------------------------------------------------
>
>                 Key: MAPREDUCE-954
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-954
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: client
>            Reporter: Owen O'Malley
>            Assignee: Arun C Murthy
>             Fix For: 0.21.0
>
>         Attachments: MAPREDUCE-954.patch, MAPREDUCE-954.patch, 
> MAPREDUCE-954.patch, MAPREDUCE-954.patch, MAPREDUCE-954.patch
>
>
> When I was doing HADOOP-1230, I was persuaded to make the Context objects as 
> classes. I think that was a serious mistake. It caused a lot of information 
> leakage into the public classes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to