Greetings,
I used kmeans to cluster ~3million instances of 40-d vectors. The
clustering ran fine but when I ran the cluster dump utility I got the
memory error below. I initially ran everything locally, but after
getting the memory error I tried running it under hadoop in pseudo
distributed mode (I'm running cloudera).
I have r1066213 of Mahout.
Java is 1.6.0_23
Jeremy
/usr/local/programs/svn_mahout/bin/mahout clusterdump --seqFileDir
kmeans_work/cluster-9 --pointsDir kmeans_work/clusteredPoints --output
kmeans_work/clusteranalyze-9.txt
Running on hadoop, using HADOOP_HOME=/usr/lib/hadoop-0.20
No HADOOP_CONF_DIR set, using /usr/lib/hadoop-0.20/conf
11/02/18 14:34:50 INFO common.AbstractJob: Command line arguments:
{--dictionaryType=text, --endPhase=2147483647,
--output=kmeans_work/clusteranalyze-9.txt,
--pointsDir=kmeans_work/clusteredPoints,
--seqFileDir=kmeans_work/cluster-9, --startPhase=0, --tempDir=temp}
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead
limit exceeded
at org.apache.mahout.math.DenseVector.<init>(DenseVector.java:44)
at org.apache.mahout.math.DenseVector.<init>(DenseVector.java:39)
at
org.apache.mahout.math.VectorWritable.readFields(VectorWritable.java:94)
at
org.apache.mahout.clustering.WeightedVectorWritable.readFields(WeightedVectorWritable.java:55)
at
org.apache.hadoop.io.SequenceFile$Reader.getCurrentValue(SequenceFile.java:1758)
at org.apache.hadoop.io.SequenceFile$Reader.next(SequenceFile.java:1886)
at
org.apache.mahout.utils.clustering.ClusterDumper.readPoints(ClusterDumper.java:286)
at
org.apache.mahout.utils.clustering.ClusterDumper.init(ClusterDumper.java:224)
at
org.apache.mahout.utils.clustering.ClusterDumper.run(ClusterDumper.java:143)
at
org.apache.mahout.utils.clustering.ClusterDumper.main(ClusterDumper.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:186)