Mahout k-means 聚类命令:面临堆空间问题

Posted

技术标签:

【中文标题】Mahout k-means 聚类命令:面临堆空间问题【英文标题】:Mahout k-means clustering command : facing Heap Space Issues 【发布时间】:2013-12-12 13:46:53 【问题描述】:

我正在尝试使用 mahout 在仅包含数值的 300MB 数据集上执行 k-means 聚类。但是在第二次迭代后,我在 k-means 命令中的内存不足。为什么每次迭代后大小都会增加?我该如何解决这个问题?

【问题讨论】:

您可能想尝试使用 scikit-learn,因为您的数据并不是很大 【参考方案1】:

不要将 Mahout 用于小型数据集。只是不要。

300 MB 可轻松装入任何现代计算机的主内存。内存中的实现(也许试试ELKI)将轻松胜过 Mahout,因为它没有 Map Reduce 的开销。

Hadoop 不是一种万能的解决方案。它是超大尺寸解决方案,您没有超大尺寸数据。

有没有可能您甚至没有使用真正的集群,而是使用虚拟机?您分配的磁盘空间或内存可能太小,或者您的集群配置不当。

【讨论】:

我自己用的是集群,实际数据量还是挺大的。我的问题是,有没有办法以某种方式增加堆空间?为什么每次 k-means 迭代后大小都会增加? 映射器应该使用恒定数量的内存。它需要存储集群均值和一个数据点。您的错误真正出现在哪里?映射器?洗牌?减少?

以上是关于Mahout k-means 聚类命令:面临堆空间问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用存储为 CSV 的矢量数据在 mahout 中执行 k-means 聚类?

mahout in Action2.2-聚类介绍-K-means聚类算法

Mahout 聚类:使用 seqdumper 检索命名向量的名称时出错

如何从 Tf-IDF 向量中选择 K-mean 的初始聚类

Apache Mahout K-means 集群实现

Mahout - 聚类的向量