You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Tianyin Xu (JIRA)" <ji...@apache.org> on 2015/12/19 22:38:46 UTC

[jira] [Created] (MAPREDUCE-6582) A number of inconsistent default configuration values

Tianyin Xu created MAPREDUCE-6582:
-------------------------------------

             Summary: A number of inconsistent default configuration values
                 Key: MAPREDUCE-6582
                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6582
             Project: Hadoop Map/Reduce
          Issue Type: Bug
          Components: documentation
    Affects Versions: 2.7.1
            Reporter: Tianyin Xu


In MapReduce, a list of default configuration values are inconsistent with what is described in the docs ({{mapred-default.xml}}),
(https://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/)

*1. {{mapreduce.reduce.shuffle.fetch.retry.timeout-ms}}*
In mapred-default.xml, the value is {{30000}}, while it is {{180000}} in the code,

{code:title=Fetcher.java (only usage)|borderStyle=solid}
 60   private static final int DEFAULT_STALLED_COPY_TIMEOUT = 3 * 60 * 1000;
...
152     this.fetchRetryTimeout = job.getInt(MRJobConfig.SHUFFLE_FETCH_RETRY_TIMEOUT_MS,
153         DEFAULT_STALLED_COPY_TIMEOUT);
{code}

*2. {{mapreduce.shuffle.ssl.file.buffer.size}}*
In mapred-default.xml, the value is {{65536}}, while it is {{61440}} in the code,
{code:title=ShuffleHandler.java  (only usage)|borderStyle=solid}
 203   public static final int DEFAULT_SUFFLE_SSL_FILE_BUFFER_SIZE = 60 * 1024;
...
 396     sslFileBufferSize = conf.getInt(SUFFLE_SSL_FILE_BUFFER_SIZE_KEY,
 397                                     DEFAULT_SUFFLE_SSL_FILE_BUFFER_SIZE);
{code}

This one looks quite weird, because normally it should be {{64 * 1024}} (i.e., {{65536}}). I don't know whether it's a typo...

*3. {{mapreduce.reduce.shuffle.merge.percent}}*
In mapred-default.xml, the value is {{0.66}}, while it is {{0.9}} in the code,
{code:title=MergeManagerImpl.java  (only usage)|borderStyle=solid}
194                           jobConf.getFloat(MRJobConfig.SHUFFLE_MERGE_PERCENT,
195                                            0.90f));
{code}

*4. {{mapreduce.task.timeout}}*
In mapred-default.xml, the value is {{600000}}, while it is {{300000}} in the code,
{code:title=TaskHeartbeatHandler.java  (only usage)|borderStyle=solid}
 90     taskTimeOut = conf.getInt(MRJobConfig.TASK_TIMEOUT, 5 * 60 * 1000);
{code}

*5. {{mapreduce.task.io.sort.factor}}*
In mapred-default.xml, the value is {{10}}, while it is {{100}} in the code,
{code:title=MergeManagerImpl.java  (Usage #1)|borderStyle=solid}
175     this.ioSortFactor = jobConf.getInt(MRJobConfig.IO_SORT_FACTOR, 100);
{code}
{code:title=MapTask.java  (Usage #2)|borderStyle=solid}
 970       final int sortmb = job.getInt(JobContext.IO_SORT_MB, 100);
{code}

*6. {{mapreduce.job.end-notification.max.attempts}}*
In mapred-default.xml, the value is {{5}}, while it is {{1}} in the code,
{code:title=JobEndNotifier.java  (only usage)|borderStyle=solid}
 72       , conf.getInt(MRJobConfig.MR_JOB_END_NOTIFICATION_MAX_ATTEMPTS, 1)
{code}

*7. {{mapreduce.job.end-notification.retry.interval}}*
In mapred-default.xml, the value is {{1000}}. In the code, the default value is {{30000}}.
(actually the two usages are even not the same...) 
{code:title=.../mapred/JobEndNotifier.java  (Usage #1)|borderStyle=solid}
 50       long retryInterval = conf.getInt(JobContext.MR_JOB_END_RETRY_INTERVAL, 30000);
{code}
{code:title=.../v2/app/JobEndNotifier.java  (Usage #2)|borderStyle=solid}
 75     conf.getInt(MRJobConfig.MR_JOB_END_RETRY_INTERVAL, 5000)
{code}



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