用mahout跑第一个协同过滤算法的程序
2015-04-17 17:38
218 查看
万事开头难,上午看了一下基于物品的协同过滤的算法的原理,于是下午决定练练手。
本以为按照书上的命令来敲会很顺利,然而好事多磨,花了大半个下午才搞好。
刚开始就发现我看得书上的命令有问题,真是坑,又找了另一本mahout的书来看。
先在hdfs下建好相应的文件夹,并把输入文件传上去。
然后敲如下一段正确的命令:
hadoop jar /usr/local/mahout-distribution-0.9/mahout-examples-0.9-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i /test/input/user_item.txt
-o /item/output -n 3 -b false -s SIMILARITY_EUCLIDEAN_DISTANCE --maxPrefsPerUser 7 --minPrefsPerUser 2 --maxPrefsPerUser 2
然而敲命令运行之后,还是报错了,报错如下:
然后,把人家编译好的jar包放到mahout里面去,再次执行命令,解决了一些小错误之后,终于跑出了个结果,也是不容易啊。
参考自下文:
hadoop2.2+mahout0.9实战
本以为按照书上的命令来敲会很顺利,然而好事多磨,花了大半个下午才搞好。
刚开始就发现我看得书上的命令有问题,真是坑,又找了另一本mahout的书来看。
先在hdfs下建好相应的文件夹,并把输入文件传上去。
然后敲如下一段正确的命令:
hadoop jar /usr/local/mahout-distribution-0.9/mahout-examples-0.9-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i /test/input/user_item.txt
-o /item/output -n 3 -b false -s SIMILARITY_EUCLIDEAN_DISTANCE --maxPrefsPerUser 7 --minPrefsPerUser 2 --maxPrefsPerUser 2
然而敲命令运行之后,还是报错了,报错如下:
java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected at org.apache.mahout.common.HadoopUtil.getCustomJobName(HadoopUtil.java:174) at org.apache.mahout.common.AbstractJob.prepareJob(AbstractJob.java:614) at org.apache.mahout.cf.taste.hadoop.preparation.PreparePreferenceMatrixJob.run(PreparePreferenceMatrixJob.java:73) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)上网搜了一下,找到了一篇比较靠谱的博文,发现是mahout下面一个jar包的问题,奈何人家编译好的jar包是mahout0.9的,所以我只能删掉原来的0.7,再安装配置一个0.9的。
然后,把人家编译好的jar包放到mahout里面去,再次执行命令,解决了一些小错误之后,终于跑出了个结果,也是不容易啊。
参考自下文:
hadoop2.2+mahout0.9实战
相关文章推荐
- mahout入门之编写第一个基于用户的推荐程序
- 第一个OSGI开发实例-简易字典查询程序
- 第一个QNX程序
- 【C#入门】第一个C#下windows程序
- 我的第一个程序
- 创建第一个AJAX程序
- 第一个gulp程序
- AR simple第一个程序详细分析
- 我的gulp第一个程序
- 基于opencv的计算机视觉技术实现 第五章节第一个程序 改错
- JSF---->环境搭建及第一个程序
- Android第一个程序Say Hello To Android
- 第一个Servlet程序
- Hibernate复习笔记(一)---环境搭建及第一个HelloWorld程序的实现
- Python开发环境搭建,开发工具配置,第一个Python程序
- 第一个Java程序示例——Hello World!
- WCF教程系列(1)-创建第一个WCF程序
- 我的第一个Win 32 Application 程序
- 建立第一个directX程序——在C#下利用DirectSound实现声音播放
- Mahout学习之Mahout简介、安装、配置、入门程序测试