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

Gera Shegalov commented on MAPREDUCE-6174:
------------------------------------------

Thanks for 005 patch, [~eepayne]! 

In IFileWrappedMapOutput, we can make {{conf}} and {{merger}} final fields.

You are right, I misspoke regarding {{mapOutputFile}} in ODMO constructors. 
Since the old constructors are public and package-scope, respectively, I 
suggest we keep both signatures unchanged for robust backwards-compatibility, 
and annotate them as deprecated.

We can introduce a third package-scope constructor:
{code}
  OnDiskMapOutput(TaskAttemptID mapId,
      MergeManagerImpl<K,V> merger, long size,
      JobConf conf,
      int fetcher, boolean primaryMapOutput,
      FileSystem fs, Path outputPath) throws IOException {
    super(conf, merger, mapId, size, primaryMapOutput);
    this.fs = fs;
    this.outputPath = outputPath;
    tmpOutputPath = getTempPath(outputPath, fetcher);
    disk = CryptoUtils.wrapIfNecessary(conf, fs.create(tmpOutputPath));
  }
{code}

It can be used to implement both old constructors via this and for 
MergeManagerImpl.
 

> Combine common stream code into parent class for InMemoryMapOutput and 
> OnDiskMapOutput.
> ---------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-6174
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6174
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: mrv2
>    Affects Versions: 3.0.0, 2.6.0
>            Reporter: Eric Payne
>            Assignee: Eric Payne
>              Labels: BB2015-05-RFC
>         Attachments: MAPREDUCE-6174.002.patch, MAPREDUCE-6174.003.patch, 
> MAPREDUCE-6174.004.patch, MAPREDUCE-6174.005.patch, MAPREDUCE-6174.v1.txt
>
>
> Per MAPREDUCE-6166, both InMemoryMapOutput and OnDiskMapOutput will be doing 
> similar things with regards to IFile streams.
> In order to make it explicit that InMemoryMapOutput and OnDiskMapOutput are 
> different from 3rd-party implementations, this JIRA will make them subclass a 
> common class (see 
> https://issues.apache.org/jira/browse/MAPREDUCE-6166?focusedCommentId=14223368&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14223368)



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

Reply via email to