Mahout初体验

Mahout 是一套具有可扩充能力的机器学习类库。目前,最新版本为0.7,主要提供推荐引擎算法、分类算法和聚类算法。该类库既可以单机环境下使用,也可以在hadoop集群中使用。具体Mahout的介绍可以参考:

1、http://www.ibm.com/developerworks/cn/java/j-mahout/

2、http://mahout.apache.org/

实际应用中,可以将其相关包加入个人项目,使用已经封装好的jar包,即类库。作为研究,可以将Mahout最为一个单独的工程“检出”,在eclipse中单独处理,并对源码进行修改。基于应用和研究的不同,对mahout的处理就有所不同。

一、安装

1、ubuntu linux 10.04

2、subclipse

eclipse中的svn插件,用于从SVN服务器中检出工程。具体参见:

1)http://xgdellis.iteye.com/blog/1450196

 

3、maven插件

用于检出mahout源码。具体参见:

1)http://blog.csdn.net/aidayei/article/details/6664386

2)http://blog.163.com/jiayouweijiewj@126/blog/static/1712321772011117111127400/

 

在2)中,最后运行了run as->maven bulid,文件之间就关联了起来,可以追溯类或方法,具体原因不太清楚。

二、简单案例

在我的工程中,“usingMahout”工程用的是mahout的jar包,不是源码,参考的该博文:http://blog.csdn.net/zhzhl202/article/details/6316570,这种方法可以使用mahout,但不可以对其进行改进。

mahout-core都是从svn中检出的源码,执行了第一节第3步中相关的操作,maven build 之后,出现了一次死机的情况,之后便可以文件关联。

测试程序选的是http://blog.csdn.net/zhzhl202/article/details/6316570中提供的程序,经测试,在usingMahout和mahout-core中都能够得到正确的结果。

 

ps:在探索过程中,安装过maven,配置过相应的变量,也在检出的mahout整个工程中执行过一些命令,暂时没用到。对maven不熟,有待进一步学习。

 三、集群中安装

拷贝mahout的下载包至集群主节点(只需要在主节点中配置),或者通过Maven检出。之后配置环境变量,在命令行中输入一下命令:

export HADOOP_HOME=/home/hadoop
export HADOOP_HOME_CONF_DIR=/home/hadoop/conf

检测是否安装成功:

root@dm4:/home/mahout#mahout -help

若安装成功,会输出mahout已经实现的算法,如下图所示。

运行示例。mahout自带一些示例代码,执行下面的hadoop命令,可以运行Canopy聚类算法示例:

root@dm4:/home/hadoop#bin/hadoop jar /home/mahout/mahout-examples-0.7-job.jar org.apache.mahout.clustering.syntheticcontrol.canopy.Job    (注意字母大小写,“Job”

不太清楚 mahout-examples-0.7.jar和mahout-examples-0.7-job.jar的区别,做实验时可以多做些尝试。

root@dm4:/home/hadoop#bin/hadoop jar /home/mahout/mahout-examples-0.7.jar org.apache.mahout.clustering.syntheticcontrol.canopy.Job 

 

在运行之前需要保证hadoop系统中存在/user/root/testdata目录存在,且该目录下包含数据,本次实验采用的是http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,具体参考http://ices01.sinaapp.com/?p=90http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data.html

使用mahout命令查看运行结果

 root@dm4:/home/mahout# bin/mahout vectordump --seqfile /user/root/output/data/part-m-00000

 



 转载请保留:http://www.cnblogs.com/Deron/archive/2013/05/02/3054917.html

 

posted on 2013-05-02 16:46  _Deron_  阅读(777)  评论(0编辑  收藏  举报

导航