在Mahout中运行Breiman示例时出现java.lang.ClassNotFoundException

时间:2013-03-27 06:42:07

标签: hadoop mahout

我正在尝试运行Breiman在单个系统(伪分布式模式)上构建Mahout分类决策林的示例。我指的是this tutorial    我对本教程的前两个步骤没有任何问题,但第三步(即“为数据集生成文件描述符”)抛出异常,如下所示

Exception in thread "main" java.lang.ClassNotFoundException: org.apache.mahout.classifier.df.tools.Describe
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)

我跑的命令是

hadoop_admin@ubuntu:~/hadoop$ bin/hadoop jar /home/viggi/workspace/mahout-distribution-0.5/mahout-core-0.5-job.jar org.apache.mahout.classifier.df.tools.Describe -p data10/glass.data -f data10/glass.info -d I 9 N L

我在堆栈溢出中发现了一个类似异常的帖子。 java.lang.NoClassDefFoundError尽管它与mahout或Breiman示例无关,但我决定采用推荐的解决方案,即下载HttpClient jar-library并将其放入$MAHOUT_HOME/lib。它没用。因此,如果有人可以解释第3步实际上做了什么以及如何摆脱这些例外,那将非常有用。

2 个答案:

答案 0 :(得分:2)

据我所知,Mahout 0.5没有org.apache.mahout.classifier.df.tools.Describe类,这就是你得到异常的原因,它无法找到它。

从Mahout 0.6开始,班级就在那里。我建议你升级到最新稳定版的Mahout(0.7)

答案 1 :(得分:0)

您的Describe包似乎错了 - 在我刚下载的0.5 core-job.jar中,Describe的包不包含分类器部分:

  • org.apache.mahout.df.tools.Describe

不知道如何通过

编译代码