Mahout初体验

摘要:
Mahout是一个可扩展的机器学习类库。作为一项研究,您可以将Mahout作为一个单独的项目“检出”,在eclipse中单独处理它,并修改源代码。根据不同的应用和研究,红木的加工方法不同。参见:1)http://xgdellis.iteye.com/blog/14501963maven插件用于检查mahout源代码。测试程序选择http://blog.csdn.net/zhzhl202/article/details/6316570对中提供的程序进行了测试,以获得使用mahout和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初体验第1张

运行示例。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

免责声明:文章转载自《Mahout初体验》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JAVA发红包案例datax同步json中文乱码问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Hadoop—MapReduce计算气象温度

Hadoop—MapReduce计算气象温度 1 运行环境说明 1.1 硬软件环境 主机操作系统:Mac OS 64 bit ,8G内存 虚拟软件:Parallers Desktop12 虚拟机操作系统:CentOS 64位,单核,512内存 JDK:java version "1.7.0_45" Hadoop:1.1.2 1.2 机器网络环境 集群包...

关于 nohup 执行命令以后 需要再按回车才能起效的解决办法

最近在做分析程序优化过程中,需要增加分析程序日志,但是在hadoop上运行时,是需要使用hadoop自身的log4j来进行日志输出,若想要将自定义的log4j日志内容输出独立的日志文件,需要修改hadoop自身log4j配置文件,并需要重启hadoop集群,这、、有点摊上大事的赶脚,所以还是需要其他方法来实现,后来想到后台运行可以导出日志到指定位置,但是每...

Spark2.1集群安装(standalone模式)

机器部署   准备三台Linux服务器,安装好JDK1.7 下载Spark安装包   上传spark-2.1.0-bin-hadoop2.6.tgz安装包到Linux(intsmaze-131)上   解压安装包到指定位置tar -zxvf spark-2.1.0-bin-hadoop2.6.tgz -C /home/hadoop/app/spark2.0...

HUE安装与使用

HUE安装与使用 1、介绍 HUE是一个开源的Apache Hadoop UI系统,早期由Cloudera开发,后来贡献给开源社区。它是基于Python Web框架Django实现的。通过使用Hue我们可以通过浏览器方式操纵Hadoop集群。例如put、get、执行MapReduce Job等等。 2、安装 2.1 安装hue依赖的第三方包 #安装xml软...

namenode无法启动(namenode格式化失败)

格式化namenode root@node04 bin]# sudo -u hdfs hdfs namenode –format 16/11/14 10:56:51 INFO namenode.NameNode: STARTUP_MSG: /*******************************************************...

启动hadoop时报root@localhost's password: localhost: Permission denied, please try again.错误。

背景:在装完hadoop及jdk之后,在执行start-all.sh的时候出现root@localhost's password:localhost:permission denied,please try again。 解决方案: 1.修改root密码:#sudo passwd root 2.辑配置文件,允许以 root 用户通过 ssh 登录:sudo...