org.apache.hadoop.examples
Class PiEstimator
java.lang.Object
org.apache.hadoop.conf.Configured
org.apache.hadoop.examples.PiEstimator
- All Implemented Interfaces:
- Configurable, Tool
public class PiEstimator
- extends Configured
- implements Tool
A Map-reduce program to estimate the value of Pi
using quasi-Monte Carlo method.
Mapper:
Generate points in a unit square
and then count points inside/outside of the inscribed circle of the square.
Reducer:
Accumulate points inside/outside results from the mappers.
Let numTotal = numInside + numOutside.
The fraction numInside/numTotal is a rational approximation of
the value (Area of the circle)/(Area of the square),
where the area of the inscribed circle is Pi/4
and the area of unit square is 1.
Then, Pi is estimated value to be 4(numInside/numTotal).
Method Summary |
static BigDecimal |
estimate(int numMaps,
long numPoints,
JobConf jobConf)
Run a map/reduce job for estimating Pi. |
static void |
main(String[] argv)
main method for running it as a stand alone command. |
int |
run(String[] args)
Parse arguments and then runs a map/reduce job. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PiEstimator
public PiEstimator()
estimate
public static BigDecimal estimate(int numMaps,
long numPoints,
JobConf jobConf)
throws IOException
- Run a map/reduce job for estimating Pi.
- Returns:
- the estimated value of Pi
- Throws:
IOException
run
public int run(String[] args)
throws Exception
- Parse arguments and then runs a map/reduce job.
Print output in standard out.
- Specified by:
run
in interface Tool
- Parameters:
args
- command specific arguments.
- Returns:
- a non-zero if there is an error. Otherwise, return 0.
- Throws:
Exception
main
public static void main(String[] argv)
throws Exception
- main method for running it as a stand alone command.
- Throws:
Exception
Copyright © 2009 The Apache Software Foundation