mahout自带例子的常用语法

来源:互联网 发布:2016年网络热点事件 编辑:程序博客网 时间:2024/05/23 01:19

mahout使用:

步骤一:
tar -xvf mahout-0.3.tar.gz

需要指定hadoop的路径和配置文件的路径
export HADOOP_HOME=/home/hadoopuser/hadoop-0.19.2
export HADOOP_CONF_DIR=/home/hadoopuser/hadoop-0.19.2/conf


步骤二:
通过这个命令可以查看mahout提供了哪些算法,以及如何使用
bin/mahout --help

bin/mahout kmeans --input /user/hive/warehouse/tmp_data/complex.seq   --clusters  5 --output  /home/hadoopuser/1.txt

mahout下处理的文件必须是SequenceFile格式的,所以需要把txtfile转换成sequenceFile。SequenceFile是hadoop中的一个类,允许我们向文件中写入二进制的键值对,具体介绍请看
eyjian写的http://www.hadoopor.com/viewthread.php?tid=144&highlight=sequencefile

mahout中提供了一种将指定文件下的文件转换成sequenceFile的方式。
(You may find Tika (http://lucene.apache.org/tika) helpful in converting binary documents to text.)
使用方法如下:

$MAHOUT_HOME/bin/mahout seqdirectory \
--input <PARENT DIR WHERE DOCS ARE LOCATED> --output <OUTPUT DIRECTORY> \
<-c <CHARSET NAME OF THE INPUT DOCUMENTS> {UTF-8|cp1252|ascii...}> \
<-chunk <MAX SIZE OF EACH CHUNK in Megabytes> 64> \
<-prefix <PREFIX TO ADD TO THE DOCUMENT ID>>

举个例子:
bin/mahout seqdirectory --input /hive/hadoopuser/ --output /mahout/seq/ --charset UTF-8


步骤三:
运行kmeans的简单的例子:

1:将样本数据集放到hdfs中指定文件下,应该在testdata文件夹下
$HADOOP_HOME/bin/hadoop fs -put <PATH TO DATA> testdata
例如:
bin/hadoop fs   -put /home/hadoopuser/mahout-0.3/test/synthetic_control.data  /user/hadoopuser/testdata/

2:使用kmeans算法
$HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/examples/target/mahout-examples-$MAHOUT_VERSION.job org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
例如:
bin/hadoop jar /home/hadoopuser/mahout-0.3/mahout-examples-0.1.job org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

3:使用canopy算法
$HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/examples/target/mahout-examples-$MAHOUT_VERSION.job org.apache.mahout.clustering.syntheticcontrol.canopy.Job
例如:
bin/hadoop jar /home/hadoopuser/mahout-0.3/mahout-examples-0.1.job org.apache.mahout.clustering.syntheticcontrol.canopy.Job

4:使用dirichlet 算法
$HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/examples/target/mahout-examples-$MAHOUT_VERSION.job org.apache.mahout.clustering.syntheticcontrol.dirichlet.Job

5:使用meanshift算法
meanshift : $HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/examples/target/mahout-examples-$MAHOUT_VERSION.job org.apache.mahout.clustering.syntheticcontrol.meanshift.Job

6:查看一下结果吧
bin/mahout vectordump --seqFile /user/hadoopuser/output/data/part-00000
这个直接把结果显示在控制台上。

可以到hdfs中去看看数据是什么样子的
上面跑的例子大多以testdata作为输入和输出文件夹名
可以使用 bin/hadoop fs -lsr 来查看所有的输出结果

KMeans 方法的输出结果在  output/points
Canopy 和 MeanShift 结果放在了 output/clustered-points

 

版本不一样的时候   会有所差异   基本上还是一样的

原创粉丝点击