Peter Bacsko created MAPREDUCE-7056:
---------------------------------------

             Summary: Ensure that mapreduce.job.reduces is not negative
                 Key: MAPREDUCE-7056
                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-7056
             Project: Hadoop Map/Reduce
          Issue Type: Bug
          Components: client
            Reporter: Peter Bacsko
            Assignee: Peter Bacsko


Recently we've seen a strange problem that was related to 
{{mapreduce.job.reduces}} being set to -1. If this value is negative, two 
things can happen:

1. If we use the old API, then the mappers will pass, but the number of 
reducers will be recorded as "-1" if we open it later from JHS. This can 
confuse Hadoop users.

2. If use the new API, then we'll see a not-so-obvious stack trace:

{noformat}
2018-02-20 06:37:35,493 INFO [main] org.apache.hadoop.mapred.MapTask: Starting 
flush of map output
2018-02-20 06:37:35,507 INFO [main] org.apache.hadoop.mapred.MapTask: Starting 
flush of map output
2018-02-20 06:37:35,507 INFO [main] org.apache.hadoop.mapred.MapTask: kvbuffer 
is null. Skipping flush.
2018-02-20 06:37:35,508 WARN [main] org.apache.hadoop.mapred.YarnChild: 
Exception running child : java.lang.IllegalArgumentException
        at java.nio.ByteBuffer.allocate(ByteBuffer.java:334)
        at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:51)
        at 
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.mergeParts(MapTask.java:1891)
        at 
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1527)
        at 
org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:735)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:805)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:347)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1962)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168)
{noformat}

and the job fails.

We should either fail if this property is negative or set to "0" to avoid this.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: mapreduce-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: mapreduce-dev-h...@hadoop.apache.org

Reply via email to