我正在试着用一个例子http://chimpler.wordpress.com/2013/06/24/using-the-mahout-naive-bayes-classifier-to-automatically-classify-twitter-messages-part-2-distribute-classification-with-hadoop/comment-page-1/#comment-693但我的hadoop似乎无法识别外部库,尤其是mahout,它是运行示例所必需的。
这是我看到的无法修复的错误消息:
13/09/07 20:59:07 INFO mapred.JobClient: Task Id : attempt_201309071836_0006_m_000000_0, Status : FAILED
Error: java.lang.ClassNotFoundException: org.apache.mahout.math.Vector
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:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at MapReduceClassifier$ClassifierMap.initClassifier(MapReduceClassifier.java:39)
at MapReduceClassifier$ClassifierMap.setup(MapReduceClassifier.java:31)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
at org.apache.hadoop.mapred.Child.main(Child.java:170)
到目前为止,我试过的几件事都没用-
将“mahout-distribution-0.7”文件夹中的所有.jar添加到hadoop\u classpath w.r.thttp://mail-archives.apache.org/mod_mbox/mahout-user/201103.mbox/%3c2658e54b540d284981ea57e6a549ea70a3a977ee30@inblrk77m1msx.in002.siemens.net%3e
运行“mvn package”(在“mahout-distribution-0.7”文件夹中),正如某些人所建议的那样,在使用kmeans对数据进行聚类时出错,该方法完成了清理(花费了大约一个小时,但最终结果显示“build successful”)
查看了如何在没有异常的情况下构建/运行这个简单的mahout程序?但是我看到mathout的数学库已经存在于pom.xml的'mahout-distribution-0.7'文件夹下。
需要注意的一点是,最初我的'hadoop jar '命令抛出了它找不到multiset(com.google.common.collect.multiset)的错误,我调整了classifier.java代码以使用hashmap而不是multiset,因此绕过了该错误。但是现在,看看代码,我需要让hadoop识别vector类才能成功运行程序。
有人能帮助我如何让hadoop识别mahout库并修复上面的错误吗?
我正在使用“hadoop0.20.2”和“mahout-distribution-0.7”。
提前谢谢
暂无答案!
目前还没有任何答案,快来回答吧!