Mahout-kmeans命令行文本文件聚类

时间:2022-06-03 04:49:35

准备工作:将文本文件夹上传到HDFS目录:/huanglei/wenben     ;

文件有以下:(目录和文件内容自己随便定义)

Mahout-kmeans命令行文本文件聚类

具体步骤:

    Mahout处理文件格式必须是sequencefile,而聚类需要vector类型所以需要提前将文本文件转换,kmeans命令输入需要输入簇目录,所以要canopy生成输入簇( –k命令后应该不需要输入簇目录,但我这里提示必须输入,不知什么原因

1. 文本文件(txt)转换为sequencefile文件

   mahout seqdirectory -i /huagnlei/wenben -o /huanglei/seq -xm sequential
注意:不加-xm sequential 生成的seq文件为空
2.sequencefile转换为vectors
   mahout seq2sparse –i /huanglei/seq –o /huanglei/vec
3. vectors转为cluster(簇中心,)
   mahout canopy –i /huanglei/vec –o /huanglei/clu
4.运行kmeans命令
   Mahout kmeans –i /huanglei/vec/tfidf-vetcors –o /huanlei/out –c /huanglei/clu/clusters-0-final –k 10 –x 500 –cl
注意:不加-cl输出文件目录无法生成clusteredPoints文件,聚类簇文件
5.将结果复制到txt文件查看
mahout seqdumper --input /huanglei/out/clusteredPoints/part-m-00000 --output /root/opt/Hadoop-2.6.0/kp.txt

vim kp.txt

结果:

Mahout-kmeans命令行文本文件聚类

 

mahout clusterdump--input /huanglei/out/clusters-5-final --pointsDir /huanglei/out/clusteredPoints--output /root/opt/hadoop-2.6.0/kc.txt

vim kc.txt

结果:

Mahout-kmeans命令行文本文件聚类