当我运行 mahout 命令时,会发生以下错误:
在 hadoop 上运行,使用 /usr/local/hadoop/bin/hadoop 和 HADOOP_CONF_DIR= MAHOUT-JOB: /home/ubuntu/mahout/examples/target/mahout-examples-0.8-SNAPSHOT-job.jar 线程“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) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method .java:601) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:192)
我有与这里相对相同的问题:mahout 无法启动。hadoop和mahout之间的兼容版本有什么关系吗? 不同之处在于我使用的是 hadoop 0.21 和 mahout 0.8。在上面的问题中指出,这个错误已经在 mahout 0.8 中修复,但我仍然遇到同样的错误。
我在http://comments.gmane.org/gmane.comp.apache.mahout.user/14817找到了关于这个问题的另一个解决方案,作者建议更改 pom.xml 文件。我试图将主 pom 文件中的 hadoopverion 从 1.1.2 更改为 0.21.0,但 maven 存储库没有该依赖项。因此,我更改为 0.20.2 但随后 mvn compile 不起作用(当我使用 hadoop 1.1.2 时 mvn compile 和 mvn install 工作)。
你有什么想法或建议吗?谢谢你。