You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-dev@hadoop.apache.org by "Harsh J (JIRA)" <ji...@apache.org> on 2013/06/01 17:42:19 UTC
[jira] [Created] (MAPREDUCE-5288)
ResourceEstimator#getEstimatedTotalMapOutputSize suffers from divide by
zero issues
Harsh J created MAPREDUCE-5288:
----------------------------------
Summary: ResourceEstimator#getEstimatedTotalMapOutputSize suffers from divide by zero issues
Key: MAPREDUCE-5288
URL: https://issues.apache.org/jira/browse/MAPREDUCE-5288
Project: Hadoop Map/Reduce
Issue Type: Bug
Components: mrv1
Affects Versions: 1.2.0
Reporter: Harsh J
The computation in the above mentioned class-method is below:
{code}
long estimate = Math.round(((double)inputSize *
completedMapsOutputSize * 2.0)/completedMapsInputSize);
{code}
Given http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round(double), its possible that the returned estimate could be Long.MAX_VALUE if completedMapsInputSize is determined to be zero.
This can be proven with a simple code snippet:
{code}
class Foo {
public static void main(String... args) {
long inputSize = 600L + 2;
long estimate = Math.round(((double)inputSize *
1L * 2.0)/0L);
System.out.println(estimate);
}
}
{code}
The above conveniently prints out: {{9223372036854775807}}, which is Long.MAX_VALUE (or 8 Exbibytes per MapReduce).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira