mahout能不能在windows7系统下运行

如题所述

如果要实现Taste算法,必备的条件是:
1) JDK,使用1.6版本。需要说明一下,因为要基于Eclipse构建,所以在设置path的值之前要先定义JAVA_HOME变量。
2) Maven,使用2.0.11版本或以上。在eclipse上安装maven插件—m2eclipse。
3)Apache Mahout,使用0.5版本。
Apache Mahout -Taste Documentation中的安装步骤:
[javascript] view plaincopy
4. Demo
To build and run the demo, follow the instructions below, which are written for Unix-like
operating systems:
1. Obtain a copy of the Mahout distribution, either from SVN or as a downloaded archive.
2. Download the "1 Million MovieLens Dataset" from http://www.grouplens.org/.
3. Unpack the archive and copy movies.dat and ratings.dat to
trunk/taste-web/src/main/resources/org/apache/mahout/cf/taste/example/
under the Mahout distribution directory.
4. Navigate to the directory where you unpacked the Mahout distribution, and navigate
totrunk.
5. Runmvn install, which builds and installs Mahout core to your local repository
6. cd taste-web
7. cp ../examples/target/grouplens.jar ./lib
8. Edit recommender.properties and fill in therecommender.class:
recommender.class=org.apache.mahout.cf.taste.example.grouplens.GroupLe
9. mvn package
10.mvn jetty:run-war. You may need to give Maven more memory: in a bash shell,
export MAVEN_OPTS=-Xmx1024M
11.Get recommendations by accessing the web application in your browser:
http://localhost:8080/RecommenderServlet?userID=1
This will produce a simple preference-item ID list which could be consumed by a client
application. Get more useful human-readable output with the debug parameter:
http://localhost:8080/RecommenderServlet?userID=1&debug=true
Incidentally, Taste's web service interface may then be found at:
http://localhost:8080/RecommenderService.jws
Its WSDL file will be here...
http://localhost:8080/RecommenderService.jws?wsdl
... and you can even access it in your browser via a simple HTTP request:
.../RecommenderService.jws?method=recommend&userID=1&howMany=10
一、在window上安装maven

现在Java新架构的不断出现,例如Struts,Spring,Hibernate等,项目的配置文件的增多,给开发人员带来很大麻烦。在实际的开发当中,Myeclipse中的project越来越庞大,所依赖的第三方Jar包越来越多,这显得Project很臃肿,给项目管理带来了很大不便,尤其是在一些大型项目。为了解决上述问题,Apache开源组织发布了Maven,它适用于大的Java项目。
有关maven介绍见《Maven权威指南》 ,下载地址:http://www.juvenxu.com/mvn-def-guide/
安装步骤:
1、下载包,见http://maven.apache.org/download.html
2、解压缩,将其中的bin目录设置到windows Path环境变量中,maven也是依赖jdk的,先装好jdk,在环境变量里面配置好jdk。
2.1、设置JAVA_HOME(顾名其意该变量的含义就是java的安装路径),找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为“.;%JAVA_HOME%\bin”,
2.2、新建变量名:M2_HOME,变量值:E:\maven\apache-maven-2.2.1,注意这里不含bin的路径。2、在path后追加;%M2_HOME%\bin,注意这里到bin目录
3、测试安装是否成功:开始->运行->cmd->mvn -version
注意:当提示mvn提示不是内部命令或外部命令,是因为在设置环境变量path的时候,可能覆盖了原先设置着的变量,只要在path后面添加变量:%SystemRoot%\system32;
4、在eclipse中安装maven插件 http://she.iteye.com/blog/1217812、http://www.cnblogs.com/freeliver54/archive/2011/09/07/2169527.html
5、使用links管理eclipse插件 http://blog.csdn.net/cfyme/article/details/6099056/
二、在windows上构建Apache Mahout环境

Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可下免费使用。该项目已经发展到了它的最二个年头,目前只有一个公共发行版。Mahout 包含许多实现,包括集群、分类、CP 和进化程序。
详细内容见:
1、Apache Mahout 简介http://www.ibm.com/developerworks/cn/java/j-mahout/
2、Maven 2.0:编译、测试、部署、运行http://www.ideagrace.com/html/doc/2006/06/14/00847.html
开始构建:
1、基于 Apache Mahout 构建社会化推荐引擎http://www.ibm.com/developerworks/cn/java/j-lo-mahout/
本文是由此篇文章引申而来,所以具体就是实现了“Taste的安装于简单的Demo实现”。
2、使用mvn搭建Mahout环境 http://anqiang1900.blog.163.com/blog/static/1141888642010380255296/
简单来说就是将Mahout源码从官网上下载下来后,在dos下切换到根文件夹后执行mvn install。
3、在Eclipse中构建Mahout http://www.cnblogs.com/dlts26/archive/2011/09/13/2174889.html
就是将Mahout源码导入Eclipse从而形成Maven工程。再在mahout文件夹下执行maven install(如果上一步没做这个的话)。

三、运行Apache Mahout中的Taste Webapp例子

Taste 是 Apache Mahout 提供的一个协同过滤算法的高效实现,它是一个基于 Java 实现的可扩展的,高效的推荐引擎。
1.修改mahout-taste-webapp工程的pom.xml,添加对mahout-examples的依赖
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>mahout-examples</artifactId>
<version>0.5</version>
</dependency>
2.在mahout-taste-webapp工程的recommender.properties中添加
recommender.class=org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommender
3.从http://www.grouplens.org/node/73上下载数据文件,我下载的是1M Ratings Data Set (.tar.gz)经过测试验证通过,其他数据文件请自行验证。解压以后将ratings.dat复制到mahout-taste-webapp工程的/org/apache/mahout/cf/taste/example/grouplens/下,至于为什么是这个路径?请大家去看这个类GroupLensDataModel。
4.现在准备工作基本完成了,cd到taste-web我们来运行一把
mvn jetty:run-war
5.访问一下http://localhost:8080/RecommenderServlet?userID=1就能看到效果,这个servlet还支持其他参数请参看RecommenderServlet的javadoc说明
详细内容见http://seanhe.iteye.com/blog/1124682

四、遇到的问题

1、在Eclipse中配置Maven时遇到的问题
启动eclipse的时候会提示warning:找不到jdk啥的,解决办法:
在eclipse.ini文件中加入如下两行(vm指向javaw.exe的位置,或者直接到bin那里也可以):
-vm
D:\Development\Java\jdk1.5.0_16\bin\javaw.exe(注意这两行加到-startup与-launcher.library之间)
2、在windows上构建mahout环境时出现的问题:
2.1 在mahout目录下,运行"mvn install"时,遇到以下错误
Cannot run program "chmod": CreateProcess error=2
chmod是linux命令,此错误是由于 Cygwin + Hadoop 跑在 Windows 上出现的。
也就是说如果当前在windows下进行mahout编译,一定要确保正确安装了Cygwin(按照下面的教程装上Cygwin便可,后面hadoop的配置可以不用全部完成!)
这里用几个比较好的教材,讲解如何在windows下安装Hadoop Cluster(
http://ebiquity.umbc.edu/Tutorials/Hadoop/00%20-%20Intro.html
http://hayesdavis.net/2008/06/14/running-hadoop-on-windows/)
下载 hadoop-0.19.1在 http://archive.apache.org/dist/hadoop/core/hadoop-0.19.1/
2.2在Cygwin中运行命令ssh localhost连接不成功时出现Connection closed by ::1错误
Cygwin,耗时近xxxx个小时,查遍中文外文文献,终于将此题目解决。问题描述:在Win7下Cygwin中,使用sshlocalhost命令, 出现Connectionclosedby127.0.0.1的问题。解决方案:1、开端——运行——services.msc2、右键 CYGWINsshd——属性——登录选项卡——选择“此账户”——浏览——高级——立即查找——选择你的账户名(必须为治理员权限)——输进密码(必须 要有,空密码不承受,且和电脑登录密码相同)——确定。3、重启CYGWINsshd效劳即可。这样就以你的账户的名义启动了这个效劳。而后sshlocalhost成功。这样 做的一个缺点可能是你要给电脑设个密码
详见:http://blog.sina.com.cn/s/blog_4abbf0ae0100r8hh.html
3、运行Taste Webapp时遇到的问题
在Eclipse中配置好mahout后,就可以在mahout中运行taste-webapp算法了。
文中1,2步骤由于前面已经配置好,就直接从第3步开始配置mahout-taste-webapp中的内容。
出现的问题:
在浏览器栏输入http://localhost:8080/RecommenderServlet?userID=1后出现错误:
HTTP ERROR: 404
Problem accessing /RecommenderServlet. Reason:
Not Found
Powered by Jetty://
仔细查看第7步mvn jetty:run-war时,发现其中出现错误:
WARN::FAILED taste-recommender: java.lang.OutOfMemoryError: Java heap space
表明出现maven工程内存溢出。
解决办法:
Windows环境中
在Maven安装目录中找到文件%M2_HOME%\bin\mvn.bat ,这就是启动Maven的脚本文件,在该文件中你能看到有一行注释为:
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...
它的意思是你可以设置一些Maven参数,我们就在注释下面加入一行:
set MAVEN_OPTS=-Xmx1024M
或者,在执行mvn jetty:run-war命令之前,执行
F:\mahout-distribution-0.5\taste-web>set MAVEN_OPTS=-Xmx1024M
我们看到,配置的Maven选项生效了,OutOfMemoryError也能得以相应的解决。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-30
显然可以,Windows下 Eclipse+Maven+Mahout 单机环境的搭建

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网