如何使用mahout kmeans算法将集群转储到本地文件系统

时间:2013-08-05 08:28:21

标签: linux mahout k-means

我已经按照这个(http://sujitpal.blogspot.in/2012/09/learning-mahout-clustering.html)链接创建了初始集群和k-means集群,如下面的链接所示,但是当我尝试将集群转储到本地系统时,我收到以下错误

hadoop binary is not in PATH,HADOOP_HOME/bin,HADOOP_PREFIX/bin, running locally
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/mahout/mahout-examples-0.8-job.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/mahout/lib/slf4j-jcl-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.JCLLoggerFactory]
Aug 5, 2013 1:21:51 PM org.slf4j.impl.JCLLoggerAdapter info
INFO: Command line arguments: {--dictionary=[vectorfiles/dictionary.file-0], --dictionaryType=[seqfiles], --distanceMeasure=[org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure], --endPhase=[2147483647], --input=[kmeans-clusters], --numWords=[10], --output=[cluster.txt], --outputFormat=[TEXT], --startPhase=[0], --tempDir=[temp]}
Exception in thread "main" java.lang.IllegalArgumentException: Invalid dictionary format
        at org.apache.mahout.utils.clustering.ClusterDumper.printClusters(ClusterDumper.java:169)
        at org.apache.mahout.utils.clustering.ClusterDumper.run(ClusterDumper.java:156)
        at org.apache.mahout.utils.clustering.ClusterDumper.main(ClusterDumper.java:100)
        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:194)

转储clusers的命令

mahout clusterdump -i kmeans-clusters -d vectorfiles/dictionary.file-* -dt seqfiles -n 10 -o cluster.txt

请建议我如何获得

由于

1 个答案:

答案 0 :(得分:0)

我使用了以下命令及其工作

mahout clusterdump -dt sequencefile -d vectorfiles / dictionary.file-0 -i kmeans-clusters / clusters-1-final -o result.txt -b 10 -n 10