Hadoop上的Mahout k-means
我想在Hadoop伪分布式模式下运行kmeans集群。我在一个.mat文件中有500万个向量,每个向量有38个数字特征,如下所示: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 我运行了我找到的例子,比如路透社(mhttps://mahout.apache.org/users/clustering/k-means-clustering.html)或合成数据。我知道我必须把这个向量转换成SequenceFile,但我不知道我之前是否需要做更多的工作Hadoop上的Mahout k-means,hadoop,cluster-computing,cluster-analysis,mahout,Hadoop,Cluster Computing,Cluster Analysis,Mahout,我想在Hadoop伪分布式模式下运行kmeans集群。我在一个.mat文件中有500万个向量,每个向量有38个数字特征,如下所示: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 我运行了我找到的例子,比如路透社(mhttps://mahout.apache.org/users/clustering/k-means-clustering.html)或合成数据。我知道我必须把这个向量转换成SequenceFile,但我不知道我之前是否需要做更多的工作 我正在使用Mahout 0.7和Had
我正在使用Mahout 0.7和Hadoop 1.2.1。是的,您需要一个小的预处理步骤 由于生成的MAT文件是二进制文件,因此第一步是将其转换为文本文件(.txt),每行开始一个包含38个特征值的向量 然后,下一步是使用SeqDirectory(或编写自己的SequenceFileWriter来完成),所有其他步骤如Reuters示例所示 您自己的序列文件编写器的示例如下 我在Mahout LDA中也尝试了同样的方法,在那里我编写了自己的序列文件编写器,并将其作为LDA过程的下一步seq2sparse的输入 切勿使用伪分布式模式 Mahout只有在数据太大而无法在一台计算机上进行分析的情况下才有回报,但实际上至少需要十几台计算机来保存和处理数据 原因是建筑。Mahout构建在map reduce之上,依靠将大量iterim数据写入磁盘,以便能够从崩溃中恢复 在伪分布式模式下,它无论如何都无法很好地从此类崩溃中恢复 如果您想学习安装和配置Mahout,而不需要访问真正的集群,那么伪分布式模式是可以的。用于分析真实数据是不合理的 相反,可以使用Matlab内置的功能,或者使用为单个节点设计的集群工具,例如。它通常会比Mahout好一个数量级,因为它不会多次将所有内容写入磁盘。在我的实验中,这些工具能够在单个核心上比10核Mahout集群的性能提高10倍。因为I/O成本完全支配运行时 以自己为基准 如果你在这方面不信任我,那你自己做基准吧。将reuters数据加载到Matlab中,并在那里进行聚类。我敢肯定,Matlab会让Mahout看起来像一个过时的时尚