hadoop上执行mahout的kmeans算法

沙诺 posted @ 2013年7月13日 21:34 in 机器学习和数据挖掘 with tags hadoop mahout , 3732 阅读

Mahout 是一套具有可扩充能力的机器学习类库。它提供机器学习框架的同时,还实现了一些可扩展的机器学习领域经典算法的实现,可以帮助开发人员更加方便快捷地创建智能应用程序。通过和 Apache Hadoop 分布式框架相结合,Mahout 可以有效地使用分布式系统来实现高性能计算。(类官方的解释)

做这个实验我感觉最重要的就是hadoop与mahout的版本问题。我先后进行了三大次的尝试,总算是跑成功了,这里写出来,提供给想做这个实验的一些小经验吧。

先写出用的两条重要的命令吧:

执行聚类:mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

分析聚类的结果:$MAHOUT_HOME/bin/mahout clusterdump --seqFileDir /user/xxxxxx/output/clusters-10-final --pointsDir /user/kerry/output/clusteredPoints --output $MAHOUT_HOME/examples/output/clusteranalyze.txt       注:xxxxxx代表用户名

第一次:我用的是hadoop-0.20.2和mahout0.4-mahout0.7,jdk1.6

mahout能在本地运行,但是不能在hadoop运行。

第二次:hadoop-1.0.3 和mahout0.6    jdk0.6

mahout能在hadoop上执行聚类,但是在执行的中间会报错:org.apache.mahout.math.CardinalityException: Required cardinality 23 but got 60

第三次:hadoop-1.1.2和mahout0.6  jdk0.7(由于一次失误操作,我把本次实验需要的全部软件和数据都删除了,所以就都换新的软件进行了尝试,本来没想到会跟hadoop的版本有这么大的关系的,在此提醒:一定要做好备份)

mahout能在hadoop上执行聚类,并且能够对聚类结果进行分析,即实验完成。

实验过程:

1、装hadoop和mahout(也就是配置环境变量)

export JAVA_HOME=/home/自己的用户名/hadoop/jdk1.7.0_04
export MAVEN_HOME=/home/自己的用户名/hadoop/apache-maven-3.0.5
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:/home/自己的用户名/hadoop/mahout/mahout-distribution-0.6/bin:$MAHOUT_HOME/bin:/home/自己的用户名/hadoop/shell:$MAVEN_HOME/bin
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/lib:/home/自己的用户名/hadoop/mahout/mahout0.6/lib
export HADOOP_HOME=/home/自己的用户名/hadoop/hadoop-1.1.2
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export MAHOUT_HOME=/home/自己的用户名/hadoop/mahout/mahout-distribution-0.6
 
2、启动hadoop
格式化:hadoop namenode -format
启动:start-all.sh
 
3、下载分析的数据,并进行聚类和分析
数据地址:http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
数据copy到hdfs:hadoop fs -mkdir testdata               hadoop fs -put <PATH TO synthetic_control.data> testdata
在hadoop上执行kmeans聚类:mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
查看聚类产生的结果:hadoop fs -ls output
分析聚类产生的结果:$MAHOUT_HOME/bin/mahout clusterdump --seqFileDir /user/自己的用户名/output/clusters-10-final --pointsDir /user/kerry/output/clusteredPoints --output $MAHOUT_HOME/examples/output/clusteranalyze.txt
 
我的毕设是在hadoop做一个分类,正在研究mahout,有研究这方面的可以交流一下。。
关于mahout做分类的学习我还会继续更新的。。
Avatar_small
things to do 说:
2023年8月21日 01:28

I have always loved research and it's been actually the cause of my successful finding about all the fun things to do. I used to be doing a search on the net, I discovered a wonderful post regarding the subject of the article thatt I will have to share with your followers. Don't have any ideas for holiday? There are plenty of things to do near me around your location that you can find there.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter