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

Devaraj K commented on MAPREDUCE-6332:
--------------------------------------

Thanks [~rohithsharma] for the patch. Here are some of my comments,

1. InMemoryReader still uses MergeManagerImpl, can you update the references to 
MergeManager.
2. I don't think it is a good idea to have static inner class in the exposing 
interface. Can we move CompressAwarePath as a separate class instead of having 
it in MergeManager?
3. 
{code}
void closeInMemoryFile(InMemoryMapOutput<K, V> mapOutput);
{code}
Here we are providing API with  parameter type as InMemoryMapOutput, but 
InMemoryMapOutput marked as private class and also the visibility is default 
which cannot be accessed outside of the package.
4. {code:xml}
void closeOnDiskFile(CompressAwarePath compressAwarePath);
{code}
CompressAwarePath is used mostly inside the class MergeManagerImpl except one 
place in OnDiskMapOutput. Can we avoid giving the argument type as 
CompressAwarePath here?
5. Can we have detailed java doc for MergeManager at class level, how to 
implement it for custom merge manager? And also please add detailed description 
for the newly added API's in MergeManager. 
6. Can we have a test to demonstrate how do we configure and use the custom 
merge manager?
7. And also there are tests using MergeManagerImpl type for references, please 
update them as well.


> Provide facility to users for writting custom MergeManager implementation 
> when custom shuffleconsumerPluggin is used
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-6332
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6332
>             Project: Hadoop Map/Reduce
>          Issue Type: New Feature
>            Reporter: Rohith
>            Assignee: Rohith
>         Attachments: 0001-MAPREDUCE-6332.patch, 0002-MAPREDUCE-6332.patch, 
> 0003-MAPREDUCE-6332.patch, 0004-MAPREDUCE-6332.patch
>
>
> MR provides ability to the user for plugin custom ShuffleConsumerPlugin using 
> *mapreduce.job.reduce.shuffle.consumer.plugin.class*.  When the user is 
> allowed to use this configuration as plugin, user also interest in 
> implementing his own MergeManagerImpl. 
> But now , user is forced to use MR provided MergeManagerImpl instead of 
> custom MergeManagerImpl when user is using shuffle.consumer.plugin class. 
> There should be well defined API's in MergeManager that can be used for any 
> implementation without much effort to user for custom implementation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to