最新版本的mahout 0.9只构建在hadoop1.x上(mvn clean install)如何为hadoop2.0.x编译mahout?
因为当我运行命令时:
hadoop jar mahout-examples-0.9-snapshot-job.jar org.apache.mahout.cf.taste.hadoop.item.recommenderjob-s相似度\u coccurence-i test-o结果
我总是收到错误信息
不兼容ClassChangeError:找到接口org.apache.hadoop.mapreduce.jobcontext,但应为类。
谢谢!
3条答案
按热度按时间lp0sw83n1#
大约一小时前,mahout在主分支上正式添加了对hadoop2.x的支持(参见mahout-1329)
在这里 checkout 代码https://github.com/apache/mahout 并使用以下方法重新编译:
试试看这是否管用。
qacovj5a2#
您是否尝试过在pom.xml中更改hadoop的版本?
(请检查hadoop的版本。据我所知,0.23变成了2.0)
另一种尝试是像这样直接运行recommenderjob:
要运行此操作,您必须位于mahout文件夹的根目录中,并且需要设置以下环境变量:
kkih6yb83#
要将mahout编译为与2.x一起使用,因为它不是在与hadoop 2.x兼容的包中发布的:
如果要在生成后确认引入了正确的依赖项,请从项目的根目录运行以下命令:
上述命令生成的工件与0.9版本不同,因此您需要更新的不仅仅是版本号(似乎有一个新的mahout mrlegacy jar)。
也就是说,如果有人能给我指出一个运行2.x的官方工件(即使是快照),我会非常感激。