【问题标题】:how can I compile/using mahout for hadoop 2.0?如何为 hadoop 2.0 编译/使用 mahout?
【发布时间】:2013-09-17 01:13:27
【问题描述】:

最新版本的 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 SIMILARITY_COOCCURENCE -i test -o 结果

我总是收到错误消息

IncompatibleClassChangeError: 找到接口 org.apache.hadoop.mapreduce.JobContext,但需要类。

谢谢!

【问题讨论】:

    标签: hadoop mahout mahout-recommender


    【解决方案1】:

    要编译 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 的官方工件(即使它是一个 SNAPSHOT),我将不胜感激。

    【讨论】:

    • 将 Mahout 与 Hadoop 2.x 结合使用有多聪明和必要?谢谢
    【解决方案2】:

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

    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>                                                   
    <version> 0.23.9</version> 
    

    (请检查hadoop的版本。据我了解,0.23变成了2.0)

    要尝试的另一件事是像这样直接运行 RecommenderJob:

    bin/mahout recommenditembased \
       --input INPUT --output OUTPUT \
       --tempDir TEMP --similarityClassname SIMILARITY_LOGLIKELIHOOD
    

    要运行它,您必须位于 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"
    

    【讨论】:

    • 谢谢!
      我在maven网站上搜索了hadoop的版本信息,发现没有0.23.9或者2.0.0的版本。 search.maven.org/#browse%7C-1554017732我需要在集群上进行实验来测试集群性能,所以非分布式推荐系统可能不适合我。
    • 你有没有尝试我的第二个建议,从你的机器上运行 mahout 而不是作为 hadoop jar?我总是这样运行它,我没有任何问题。
    【解决方案3】:

    大约一个小时前,Mahout 正式在 master 分支上添加了对 Hadoop 2.x 的支持(请参阅MAHOUT-1329)

    在https://github.com/apache/mahout 处检查代码并使用以下代码重新编译:

    mvn clean package -Dhadoop2.version=2.2.0
    

    试试看是否可行。

    【讨论】:

      猜你喜欢
      • 2011-06-07
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2014-10-12
      • 1970-01-01
      • 2013-07-04
      • 2014-02-17
      相关资源
      最近更新 更多