注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

being23

写给未来的自己

 
 
 

日志

 
 
关于我

真正的坚定,就是找到力量去做自己喜欢的事情,并为之努力,这样才会觉得生活是幸福的。

网易考拉推荐

mahout推荐源码阅读笔记(0)  

2014-07-26 00:27:31|  分类: work@oppo |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在看源码之前,有必要先给一个如何使用mahout计算推荐的例子,以便有一个直观了解,看完之后发现较之前自己实现一堆MR任务,使用mahout来干这件事确实省事许多。废话到此,下面进入正文。


这里下载最新的源码,当前版本是0.9。解压,进入目录mahout-distribution-0.9,执行mvn install开始编译。启动脚本是位于bin目录下的mahout。在运行之前,需要设置环境变量JAVA_HOMEHADOOP_HOMEHADOOP_CONF_DIR。在我的电脑上是这样的

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
export HADOOP_HOME=/usr/local/Cellar/hadoop/1.0.4/libexec
export HADOOP_CONF_DIR=$HADOOP_HOME/conf

如果编译源码过程中,提示mahout-core测试失败,可以跳过测试进行编译mvn install -Dmaven.test.skip=true

完成设置后,执行mahout脚本,命令行输出类似下面的内容:

haiqiang:~/Workspace/myhadoop/mahout-distribution-0.9/bin $./mahout 
Running on hadoop, using /usr/local/bin/hadoop and HADOOP_CONF_DIR=
MAHOUT-JOB: /Users/haiqiang/Workspace/myhadoop/mahout-distribution-0.9/examples/target/mahout-examples-0.9-job.jar
An example program must be given as the first argument.
Valid program names are:
  省略。。。
  recommenditembased: : Compute recommendations using item-based collaborative filtering
  省略。。。

An example program ...表示需要指定运行的程序作为第一个参数,这里选择recommenditembased,输出如下,就是各种选项。其中错误信息指出--similarityClassname属于必选项,但是没有给出。

haiqiang:~/Workspace/myhadoop/mahout-distribution-0.9/bin $./mahout recommenditembased
Running on hadoop, using /usr/local/bin/hadoop and HADOOP_CONF_DIR=
MAHOUT-JOB: /Users/haiqiang/Workspace/myhadoop/mahout-distribution-0.9/examples/target/mahout-examples-0.9-job.jar
14/07/26 00:03:18 ERROR common.AbstractJob: Missing required option --similarityClassname
Missing required option --similarityClassname                                   
Usage:                                                                          
 [--input <input> --output <output> --numRecommendations <numRecommendations> 省略...  

嗯,准备工作结束,开始运行实例。测试用数据,每一行分别表示userid,itemid,prefval。将文件保存到目录/theme/input下面。

1,101,5.0 
1,102,3.0 
1,103,2.5 
2,101,2.0 
2,102,2.5 
2,103,5.0 
2,104,2.0 
3,101,2.5 
3,104,4.0 
3,105,4.5 
3,107,5.0 
4,101,5.0 
4,103,3.0 
4,104,4.5 
4,106,4.0 
5,101,4.0 
5,102,3.0 
5,103,2.0 
5,104,4.0 
5,105,3.5 
5,106,4.0 

在命令行执行命令启动推荐任务,这里指定了输入,输出和临时目录,以及相似度计算准则(共同出现的次数)。

./mahout recommenditembased --input /theme/input --numRecommendations 100 --tempDir /theme/temp --output /theme/output --similarityClassname SIMILARITY_COOCCURRENCE

总共会运行9个MR任务,在我的机器上跑了大概10多分钟,最终推荐结果:

[root@datanode1 ~]# hadoop fs -cat /theme/output/part-r-00000
Warning: $HADOOP_HOME is deprecated.

1       [105:3.875,104:3.7222223,106:3.6]
2       [106:2.9285715,105:2.5833333,107:2.0]
3       [106:3.5,102:3.3333333,103:3.3125]
4       [107:4.75,105:4.3333335,102:4.111111]
5       [107:3.8333333]

20140726@南山 桃苑公寓

  评论这张
 
阅读(290)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017