如何编译/使用hadoop 2.0的mahout?

如何编译/使用hadoop 2.0的mahout?,hadoop,mahout,mahout-recommender,Hadoop,Mahout,Mahout Recommender,最新版本的mahout 0.9仅构建在hadoop 1.x上。(mvn清洁安装) 如何为hadoop 2.0.x编译mahout 因为当我运行命令时: hadoop jar mahout-examples-0.9-SNAPSHOT-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob-s相似度\u协同性-i测试-o结果 我总是收到错误信息 不兼容ClassChangeError:找到接口org.apache.hadoop.ma

最新版本的mahout 0.9仅构建在hadoop 1.x上。(mvn清洁安装) 如何为hadoop 2.0.x编译mahout

因为当我运行命令时:

hadoop jar mahout-examples-0.9-SNAPSHOT-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob-s相似度\u协同性-i测试-o结果

我总是收到错误信息

不兼容ClassChangeError:找到接口org.apache.hadoop.mapreduce.JobContext,但应为类


谢谢

您是否尝试在pom.xml中更改hadoop的版本

<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>                                                   
<version> 0.23.9</version> 
要运行此操作,您必须位于mahout文件夹的根目录中,并且需要设置以下环境变量:

export HADOOP_HOME=/path/to/hadoop/home
export HADOOP_COMMONS_HOME=/path/to/commons/home
export JAVA_HOME=/path/to/java/home
export PATH="$PATH:$HADOOP_HOME/bin"

大约一小时前,Mahout在主分支上正式添加了对Hadoop2.x的支持(请参阅)

在此处签出代码并使用以下命令重新编译:

mvn clean package -Dhadoop2.version=2.2.0

试试看这是否有效。

要编译Mahout以与2.x配合使用,因为它不是在与Hadoop 2.x兼容的包中发布的:

mvn clean install -Dhadoop2 -Dhadoop2.version=2.2.0 -DskipTests=true
如果要在生成后确认引入了正确的依赖项,请从项目根目录运行以下操作:

find . -name hadoop*.jar
上述命令生成的工件不同于0.9版本中的工件,因此您需要更新的不仅仅是版本号(似乎有一个新的mahout mrlegacy jar)


话虽如此,如果有人能给我指出一个运行2.x的官方工件(即使是快照),我将不胜感激。

谢谢
我在maven网站上搜索了hadoop的版本信息,但发现该版本没有0.23.9或2.0.0。我需要在集群上进行实验来测试集群性能,因此非分布式推荐系统可能不适合我。您是否尝试了我的第二个建议,从您的机器上运行mahout而不是作为hadoop jar?我总是这样运行它,我没有任何问题。在Hadoop2.x中使用Mahout有多聪明和必要?谢谢
find . -name hadoop*.jar