当前位置: 代码迷 >> Web前端 >> Mahout in Action :Creating a web-enabled recommender in chapter 五
  详细解决方案

Mahout in Action :Creating a web-enabled recommender in chapter 五

热度:616   发布时间:2012-12-18 12:43:41.0
Mahout in Action :Creating a web-enabled recommender in chapter 5

    最近老是在想着如果可以使用eclipse调用hadoop集群那该多好呀,这里不是说eclipse调用单个节点。比如,我现在有一个hadoop集群,然后我用eclipse调用这个集群(当然我也有hadoop-eclipse插件),当我的MR程序运行完毕后,可以看到在HDFS上面有运行的文件,但是我针对节点机做性能测试时却发现,在我使用eclipse调用hadoop集群时,三个节点机都没有被调用,而只有主机的资源被用到了。所以应该是没有调用到整个集群,而是完全把MR作为一个java程序运行了。但是HDFS上面的文件也都生成了。

    而我最开始的原意是使用web程序和hadoop集群相结合,很简单的一个应用,比如说我在web界面点击一个按钮,然后就调用了整个hadoop集群来运行我的MR程序,但是我发现到目前为止,我还做不到,只能在terminal里面才能调用整个hadoop集群。

   然后我就想起来了,当时我看《Mahout in Action》时,上面就有一章说到了web和hadoop的交互,所以就又回去看了,结果却不尽人意。下面我就把整个过程简单说下吧,主要参考下面的实现:https://cwiki.apache.org/MAHOUT/recommender-documentation.html  

    (1)下载 mahout的源码,解压到一个目录,比如/home/fansy/mahout;

    (2)拷贝/home/fansy/mahout/example/src/main/java/org/apache/mahout/cf/taste/example 文件夹到/home/fansy/mahout/integration/src/main/java/org/apache/mahout/cf/taste/目录下;

    (3)在下面的网址http://www.grouplens.org/node/12 下载MovieLens_1M ,然后拷贝movies.dat 和ratings.dat到/home/fansy/mahout/integration/src/main/resources/org/apache/mahout/cf/taste/example/下面;

    (4)terminal里输入cd /home/fansy/mahout ,接着输入 mvn -DskipTests=true install ,cd integration , mvn jetty:run ,就搞定了(首先确保安装了mvn工具);

[INFO] Starting jetty 6.1.10 ...
2012-12-06 15:09:19.773::INFO:  jetty-6.1.10
2012-12-06 15:09:19.059::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
12/12/06 15:09:22 INFO file.FileDataModel: Creating FileDataModel for file /tmp/ratings.txt
12/12/06 15:09:22 INFO file.FileDataModel: Reading file info...
12/12/06 15:09:25 INFO file.FileDataModel: Processed 1000000 lines
12/12/06 15:09:25 INFO file.FileDataModel: Read lines: 1000209
12/12/06 15:09:25 INFO model.GenericDataModel: Processed 6040 users
12/12/06 15:09:25 INFO slopeone.MemoryDiffStorage: Building average diffs...
2012-12-06 15:10:05.852::INFO:  Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server

     (5)浏览器中输入http://localhost:8080/mahout-integration/RecommenderServlet?userID=1&debug=true,就可以看到下面的结果了:

User:1
Recommender: GroupLensRecommender[recommender:CachingRecommender[recommender:SlopeOneRecommender[weighted:true, stdDevWeighted:true, diffStorage:MemoryDiffStorage]]]

Top 20 Preferences:
5.0	1
5.0	48
5.0	150
5.0	2028
5.0	527
5.0	2804
5.0	1270
5.0	3105
5.0	595
5.0	1028
5.0	1193
5.0	1836
5.0	1029
5.0	1961
5.0	2355
5.0	1287
5.0	1035
5.0	1022
4.0	608
4.0	2791

Recommendations:
7.32173	557
5.248599	53
5.117761	1149
5.0479465	1039
5.0	3233
5.0	134
5.0	572
4.989473	3338
4.97531	3245
4.963756	2503
4.917827	2931
4.906247	2930
4.8904195	439
4.853654	787
4.8428426	578
4.8333335	2198
4.8279667	128
4.7788787	3601
4.767912	2019
4.764953	318
但是,这个还不是我想要的结果,还是没有达到最开始的要求,网上也比较少这方面的网页,比如我试图用 run hadoop with tomcat 也搜不到一些比较有用的网页。看过一些论坛,上面说这个启动一般是用shell来的。总之,还在继续探索中。。




分享,成长,快乐




  

  相关解决方案