分享

如何在cdh5.2上运行mahout的itemcf on hadoop

本帖最后由 坎蒂丝_Swan 于 2015-1-16 15:52 编辑

问题导读


1.如何理解该部署的基本思路?
2.hadoop没有识别到第三方(mahout)依赖jar包的问题怎么解决?











环境:


hadoop-2.5.0-cdh5.2.0

mahout-0.9-cdh5.2.0


步骤:

基本思路是,将mahout下的所有jar包都引入hadoop的classpath即可,所以修改了$HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加如下代码将mahout的所有jar包引入hadoop的classpath:
  1. for b in $MAHOUT_HOME/lib/*.jar; do
  2.   if [ "$HADOOP_CLASSPATH" ]; then
  3.     export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$b
  4.   else
  5.     export HADOOP_CLASSPATH=$b
  6.   fi
  7. done
  8. for c in $MAHOUT_HOME/*.jar; do
  9.   if [ "$HADOOP_CLASSPATH" ]; then
  10.     export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$c
  11.   else
  12.     export HADOOP_CLASSPATH=$c
  13.   fi
  14. done
复制代码



添加完代码,准备好基础数据,上传好jar包后,执行命令:
hadoop jar gul-itemcf-hadoop.jar ItemCFHadoop


注意:

该jar包没有包含所有的依赖包,仅包含了mapreduce类。

用maven加入所有依赖包的做法会导致最终的jar包十分臃肿,这样的做法是十分不优雅的,并且会增加网络和内存的负担,所以放弃。


遇到问题


顺利完成第一个job的执行,从第二个job开始,先抛出如下异常
Error: java.lang.ClassNotFoundException: org.apache.mahout.math.Vector


然后抛出如下异常
Exception in thread "main" java.io.FileNotFoundException: File does not exist: /RecommenderSystem/                               JiLinSMEPSP/RecommenderEngine/Service/GuessULike/tmp/1414042683946/preparePreferenceMatrix/numUser                               s.bin


看到第一条错误相信大家都明白,这是hadoop没有识别到第三方(mahout)依赖jar包的问题。

解决思路

首先能确定,向$HADOOP_HOME/etc/hadoop/hadoop-env.sh中添加HADOOP_CLASSPATH的方法是好使的,因为去掉最开始添加的语句后,连mahout的cf相关class都识别不到,但是,为什么只识别了一部分呢?难道是冲突?

随后,我也饶了一些弯路,参照网上众多大神的招数,比如将jar包拷到$HADOOP_HOME/lib,但所有招数都不好使,最后思路还是回到“包冲突”思路上来。


终极解决方案

通过对比$MAHOUT_HOME下的几个jar包得知,mahout-core-0.9-cdh5.2.0-job.jar包含了所有执行job需要用到的class,并且和mahout-math-0.9-cdh5.2.0.jar都重复包含了org.apache.mahout.math.Vector,看来就是冲突导致的不识别该class,所以,终极解决方案很简单,在$HADOOP_HOME/etc/hadoop/hadoop-env.sh中引入一个jar包即可:
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$MAHOUT_HOME/mahout-core-0.9-cdh5.2.0-job.jar

然后,程序成功执行,世界一片光明!







欢迎加入about云群90371779322273151432264021 ,云计算爱好者群,亦可关注about云腾讯认证空间||关注本站微信

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条