spark 1.2.0 mllib kmeans:Out of Memory Error

时间:2015-04-29 03:55:32

标签: apache-spark apache-spark-mllib

我是新来的火花,我使用KMeans算法来聚类数据集,其大小为484M,213104维度,我的代码如下:

using (ISession session = SessionFactory.OpenSession)
{
    IQuery query = session.CreateQuery("FROM Products");
    IList<Products> pInfos = query.List<Products>();
    dgView.DataSource = pInfos;
}

当我设置K = 150时,它可以工作,但是当我设置K = 300时,它会抛出val k = args(0).toInt val maxIter = args(1).toInt val model = new KMeans().setK(k).setMaxIterations(maxIter).setEpsilon(1e-1).run(trainingData) val modelRDD = sc.makeRDD(model.clusterCenters) val saveModelPath = "/home/work/kMeansModel_" + args(0) if(Files.exists(Paths.get(saveModelPath))) { FileUtils.deleteDirectory(new File(saveModelPath)) } modelRDD.saveAsTextFile(saveModelPath) val loss = model.computeCost(trainingData) println("Within Set Sum of Squared Errors = " + loss) 异常。我的配置:

java.lang.OutOfMemoryError: Java heap space

1 个答案:

答案 0 :(得分:0)

您应该告诉我们有关环境的更多信息。您是在真实群集中运行还是在本地模式下运行?

既然你说你是Spark的新手,我认为你只是在你的本地机器上玩。在这种情况下,我认为post可以帮助您。

更新

您的错误不是真正的OOM,而是堆空间异常。你有没有缓存你的RDD?