无法构建mahout-core-0.7-SNAPSHOT.job(关于hadoop的建议)

时间:2012-03-01 20:39:54

标签: hadoop mahout recommendation-engine mahout-recommender

我正在使用ubuntu 11.10。

我使用

下载了mahout_trunk

“svn co http://svn.apache.org/repos/asf/mahout/trunk

目录/ opt中的

。 之后我使用“mvn install”命令。

我已经将linked-simple-sorted.txt放在hdfs中。 并且还将users.txt放在hdfs的输入目录中。

进入/ opt / mahout / core目录后。

当我尝试使用“mvn clean package”构建mahout-core-0.7-SNAPSHOT.job时。 它不会创建任何mahout-core-0.7-SNAPSHOT.job。

我只看到mahout-core-0.7-SNAPSHOT.jar,mahout-core-0.7-SNAPSHOT-job.jar,mahout-core-0.7-SNAPSHOT-tests.jar。

当我试图从这个命令运行时:

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar /opt/mahout/core/target/mahout-core-0.7-SNAPSHOT.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.input.dir=input/input.txt -Dmapred.output.dir=output --usersFile input/users.txt --booleanData

我收到了以下错误。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli2/Option
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli2.Option
    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 java.lang.ClassLoader.loadClass(ClassLoader.java:266)

如果我尝试使用此命令运行:

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar /opt/mahout/core/target/mahout-core-0.7-SNAPSHOT.job org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.input.dir=input/input.txt -Dmapred.output.dir=output --usersFile input/users.txt --booleanData

我收到以下错误:

Exception in thread "main" java.io.IOException: Error opening job jar: /opt/mahout/core/target/mahout-core-0.7-SNAPSHOT.job
    at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.util.zip.ZipException: error in opening zip file
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:131)
    at java.util.jar.JarFile.<init>(JarFile.java:150)
    at java.util.jar.JarFile.<init>(JarFile.java:87)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:88)

我尝试了很多。但是,不要出现这个错误。

我该怎么做?

您的帮助将不胜感激。

还有其他方法可以对hadoop进行推荐吗?

1 个答案:

答案 0 :(得分:1)

你就在那里。它的-job.jar文件不是.job