gpt4 book ai didi

hadoop - mahout 不会启动。与 hadoop 和 mahout 之间的兼容版本有什么关系?

转载 作者:可可西里 更新时间:2023-11-01 15:41:20 25 4
gpt4 key购买 nike

我是 hadoop 的新手,更不用说 mahout 了。我希望有人可以帮助我通过这里..已经尝试了 2 天..
我已经有一个 hadoop 集群在运行。
我正在使用 hadoop-2.0.0-alpha。
我安装了 mahout (ahout-distribution-0.7) 和 maven-2.2.1(最新的 maven-3.0.4 不起作用)

现在我只想运行 mahout 来了解它是什么。
我了解到,通过键入“mahout”,它将打印出 mahout 中可用的选项(算法)列表,但是当我键入 mahout 时,它只会给我 Java 异常。

$ [hadoop@localhost bin]$ mahout
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, using /home/hadoop/hadoop/bin/hadoop and HADOOP_CONF_DIR=/home/hadoop/hadoop/conf
MAHOUT-JOB: /home/hadoop/mahout/examples/target/mahout-examples-0.7-job.jar
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.util.ProgramDriver.driver([Ljava/lang/String;)V
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.util.RunJar.main(RunJar.java:208)

根据我在网上搜索的内容,大部分答案都要求我使用较低版本的hadoop,即hadoop-0.20,我现在的问题与我的hadoop版本有关吗?
谢谢。

======== 新编辑 ========

我将我的 hadoop 版本更改为 hadoop-1.0.3,现在当我输入“mahout”时它可以工作(我的 mahout 是版本 7)

但是当我试图运行一个例子时,它再次失败并出现类似的错误..

$ hadoop /home/hadoop/mahout/core/target/mahout-core-0.7-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.output.dir=output  -Dmapred.input.dir=input/prefs.txt  --usersFile input/users.txt --similarityClassname SIMILARITY_PEARSON_CORRELATION
Caused by: java.lang.ClassNotFoundException: .home.hadoop.mahout.core.target.mahout-core-0.7-job.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: /home/hadoop/mahout/core/target/mahout-core-0.7-job.jar. Program will exit.

嗯..

最佳答案

是的,如果您想让它工作,您似乎需要使用不同版本的 Hadoop(或从源代码构建最新的 Mahout)。您遇到了 NoSuchMethodError,因此首先要做的是检查 ProgramDriver 是否在您正在使用的 hadoop 分发版中。

查看各种版本的 API 文档,您可以看到它在 v0.0.20.x 中,但已从较新版本中删除。

查看 Mahout 的 JIRA,您可以看到针对与此类似的问题已于 7 月 11 日提交了一个错误,并已在 0.8 版中修复。

更新:

你的命令不应该在hadoop命令之后有jar吗?像这样的东西:

$ hadoop jar /home/hadoop/mahout/core/target/mahout-core-0.7-job.jar etc

关于hadoop - mahout 不会启动。与 hadoop 和 mahout 之间的兼容版本有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com