http://log.medcl.net/item/2011/02/mahout_install/
Apache Mahout
是一个机器学习的框架,构建在hadoop上支持大规模数据集的处理,目前最新版本
0.4。
Apache Mahout 简介
http://www.ibm.com/developerworks/cn/java/j-mahout/
基于 Apache Mahout 构建社会化推荐引擎
http://www.ibm.com/developerworks/cn/java/j-lo-mahout/
Taste:
http://taste.sourceforge.net
Mahout currently has
Collaborative Filtering User and Item based recommenders K-Means,
Fuzzy K-Means clustering Mean Shift clustering Dirichlet process
clustering Latent Dirichlet Allocation Singular value decomposition
Parallel Frequent Pattern mining Complementary Naive Bayes classifier
Random forest decision tree based classifier High performance java
collections (previously colt collections) A vibrant community and many
more cool stuff to come by this summer thanks to Google summer of code
mahout安装(centos)
cd /usr/local
sudo mkdir mahout
sudo svn co http://svn.apache.org/repos/asf/mahout/trunk
mahout
安装maven3
cd /tmp
sudo wget http://apache.etoak.com//maven/binaries/apache-maven-3.0.2-bin.tar.gz
tar
vxzf apache-maven-3.0.2-bin.tar.gz
sudo mv apache-maven-3.0.2
/usr/local/maven
vi ~/.bashrc
添加如下两行
export M3_HOME=/usr/local/maven
export
PATH=${M3_HOME}/bin:${PATH}
执行 . ~/.bashrc,使设置生效[或者先logout,之后再login]
查看maven版本,看是否安装成功
mvn
-version
安装mahout
cd /usr/local/mahout
sudo mvn install
如果报JAVA_HOME is not set,如果是用sudo,检查root的java设置
vi /etc/profile
export
JAVA_HOME=/usr/local/jdk1.6/
export
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export
PATH=$PATH:$JAVA_HOME/bin
执行. /etc/profile 再执行mvn clean install
-DskipTests=true //skip tests,fast build
数据准备
cd /tmp
wget http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
hadoop fs -mkdir testdata
hadoop fs -put synthetic_control.data
testdata
hadoop fs -lsr testdata
如果报HADOOP_HOME环境变量没有设置
sudo vi /etc/profile,添加
export
HADOOP_HOME=/usr/lib/hadoop-0.20/
hadoop集群来执行聚类算法
cd /usr/local/mahout
bin/mahout org.apache.mahout.clustering.syntheticcontrol.canopy.Job
bin/mahout
org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
bin/mahout
org.apache.mahout.clustering.syntheticcontrol.fuzzykmeans.Job
bin/mahout
org.apache.mahout.clustering.syntheticcontrol.dirichlet.Job
bin/mahout
org.apache.mahout.clustering.syntheticcontrol.meanshift.Job
如果执行成功,在hdfs的/user/dev/output里面应该可以看到输出结果
GroupLens Data Sets
http://www.grouplens.org/node/12
,包括MovieLens Data
Sets、Wikilens Data Set、Book-Crossing Data Set、Jester Joke Data
Set、EachMovie Data Set
下载1m的rating数据
mkdir 1m_rating
wget http://www.grouplens.org/system/files/million-ml-data.tar__0.gz
tar
vxzf million-ml-data.tar__0.gz
rm million-ml-data.tar__0.gz
拷贝数据到grouplens代码的目录,我们先本地测试下mahout的威力
cp *.dat
/usr/local/mahout/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens
cd /usr/local/mahout/examples/
执行
mvn -q exec:java
-Dexec.mainClass="org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommenderEvaluatorRunner"
如
果不想做上面拷贝文件的操作,则指定输入文件位置就行,如下:
mvn -q exec:java
-Dexec.mainClass="org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommenderEvaluatorRunner"
-Dexec.args="-i input——file"
上传到hdfs
hadoop fs -copyFromLocal
1m_rating/ mahout_input/1mrating
补充
mahout,svn地址:https://svn.apache.org/repos/asf/mahout/trunk
https://cwiki.apache.org/MAHOUT/creating-vectors-from-text.html
将lucene索引数据转换成文本向量,指定索引目录~/index 字段名称Name,索引临时输出文件~/dict.txt
,最终结果输出文件路径output.txt,并限制最大向量数目50
$/usr/local/mahout/bin/mahout
lucene.vector --dir ~/index --field Name --dictOut ~/dict.txt --output
output.txt --max 50 --norm 2
查看下dict的文件内容
$head -n dict.txt
10225
#term doc freq idx
Michale
67 0
medcl 1 1
jack 3 2
lopoo 2 3
003 2 4
由上面的数据可见,dict.txt里面是我们的指定的Name字段的索引信息
使用taste-web来快速构建基于grouplens数据集的电影推荐系统
$cd taste-web/
拷贝grouplens的推荐包到taste-web的lib目录下,如果jar包还没有,转到目录执行
mvn install即可
$ cp examples/target/grouplens.jar taste-web/lib/
taste-web]$ vi recommender.properties
取消掉这一行的注释,配置使用grouplens的
recommender,如下:
recommender.class=org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommender
启动jetty,如果一切正常,访问8080端口,可以看到有这么个webservice,http://platformb:8080
/RecommenderService.jws
mvn jetty:run-war
执行如下命令,查看推荐结果:http://platformb:8080/RecommenderServlet?userID=1
看截
图1,2,结果的第一列表示推荐的评分,第二项为电影的id,简单几步就完成了一个推荐功能,是不是很强悍啊。
彪悍的配置文件们
分享到:
相关推荐
mahout0.9配置说明,比较短,新手向,后面还有测试说明,在我的资源里找
第三部分 功能主要包括四个方面:集群配置、集群算法监控、Hadoop模块、Mahout模块。 详情参考《Mahout算法调用展示平台2.1》
第二部分 功能主要包括四个方面:集群配置、集群算法监控、Hadoop模块、Mahout模块。 详情参考《Mahout算法调用展示平台2.1》
配置mahout 读者可能从本书的标题中依然知晓,本书是一本使用的工具书,讲解如何将mahout应用于业界。Mahout是Apache开源的机器学习库。它实现的算法都被归入机器学习或者集体智慧的范畴,但是在这里Mahout主要注重...
文件类型包括16个Java类文件、16个Java源代码文件、6个JavaScript脚本文件、3个Prefs配置文件、3个MF数据文件、3个DAT数据文件、3个PNG图片文件、2个XML配置文件、2个JSP页面文件、1个Classpath配置文件。...
项目名称:MovieRecommender - 基于Mahout的协同过滤电影推荐系统 项目概述: MovieRecommender是一个基于Apache Mahout的协同过滤算法实现的电影推荐系统。该系统主要以Java语言开发,同时整合了JavaScript以提供...
项目名称:movieRecommender - 基于Mahout框架的电影推荐系统 技术栈:主要采用Java语言开发,辅以CSS、JavaScript和HTML构建用户界面。 文件构成:项目共包含117个文件,具体分布如下: - Java类文件:39个,其中...
第一部分 功能主要包括四个方面:集群配置、集群算法监控、Hadoop模块、Mahout模块。 详情参考《Mahout算法调用展示平台2.1》
项目名称:MovieRecommender-1 - 基于Mahout的协同过滤电影推荐系统 技术栈:主要采用Java语言,辅助使用JavaScript 项目概览:本项目包含62个文件,涵盖多种类型,具体文件类型分布如下: - Java类文件:16个,...
本资源提供了一套基于Mahout的Java协同过滤电影推荐系统设计源码,包含62个文件,其中包括16个Java字节码文件,16个Java源代码文件,6个JavaScript脚本文件,3个Prefs文件,3个Manifest文件,3个Data文件,3个PNG...
用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根据业务的场景进行算法配置和...
hadoop2.0版本安装手册,包含hadoop、hive、hbase、mahout、sqoop、spark、storm、整个体系的安装配置
配置elastic-mapreduceRuby客户端。 3.启动EMR群集(请注意价格,并确保随后关闭群集)。 4.获取MovieLens数据5.wget 解压缩ml-1m.zip 转换rating.dat,将“ ::”换为“,”,并仅使用前三列:cat ml-1m / ratings...
一般情况下,一个project中只有个系统,在某些情况下,可能会要求包含多个系统,此时spring配置文件怎么进行配置
Mahout安装与配置 6 (1)安装JDK+IDEA集成开发环境; (2)安装配置maven; (3)安装配置Mahout; (4)安装配置Hadoop伪分布式环境。 第7章-大数据分析与挖掘技术---大数据基础全文共37页,当前为第6页。 Mahout...
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何...