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

being23

写给未来的自己

 
 
 

日志

 
 
关于我

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

网易考拉推荐

编译mahout with hadoop2.4.0  

2014-08-13 16:46:10|  分类: work@oppo |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近准备将hadoop升级到2.0版本,当前使用的mahout是0.9版本,是不能跑在hadoop2.*上的,打算下载最新的代码编译。


下载最新源码并编译

git clone  git://git.apache.org/mahout.git
mvn clean install -Dhadoop2 -Dhadoop.2.version=2.4.1 -DskipTests

运行推荐报错

[root@datanode1 bin]# ./mahout recommenditembased --input /tmp/theme/ods/input --tempDir /tmp/theme/tmp/00/ --output /tmp/theme/res/00 --similarityClassname SIMILARITY_COOCCURRENCE
...
14/08/13 15:11:13 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
Exception in thread "main" 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)
...

google了一通,发现这是由于JobContext从hadoop1.*的具体类变成了hadoop2.*的接口

看下依赖包,发现用的是hadoop1.*的依赖包

[root@datanode1 mahout]# find . -name hadoop*jar
./examples/target/dependency/hadoop-core-1.2.1.jar

这里有人遇到了相同的问题并给出了解决方法,正确命令是

mvn clean install -Dhadoop2 -Dhadoop2.version=2.4.1 -DskipTests

区别是-Dhadoop2.version只有一个点,不是-Dhadoop.2.version。使用上面的命令重新编译,再看下依赖包,应该对了。

[root@datanode1 mahout]# find . -name hadoop*jar
./examples/target/dependency/hadoop-yarn-api-2.4.1.jar
./examples/target/dependency/hadoop-yarn-common-2.4.1.jar
./examples/target/dependency/hadoop-yarn-client-2.4.1.jar
./examples/target/dependency/hadoop-yarn-server-common-2.4.1.jar
./examples/target/dependency/hadoop-common-2.4.1.jar
./examples/target/dependency/hadoop-mapreduce-client-common-2.4.1.jar
./examples/target/dependency/hadoop-auth-2.4.1.jar
./examples/target/dependency/hadoop-mapreduce-client-core-2.4.1.jar
./examples/target/dependency/hadoop-annotations-2.4.1.jar

再次运行推荐成功,结果如下:

[root@datanode1 bin]# hadoop fs -cat /tmp/theme/res/00/part-r-00000
14/08/13 16:09:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
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]

20140813@迈科龙

  评论这张
 
阅读(1439)| 评论(7)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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