无法添加类:org.apache.mahout.classifier.df.mapreduce.BuildForest在Mahout.0.13

问题描述:

1)当我运行这个随机森林例如无法添加类:org.apache.mahout.classifier.df.mapreduce.BuildForest在Mahout.0.13

$MAHOUT_HOME/bin/mahout org.apache.mahout.classifier.df.mapreduce.BuildForest -Dmapred.max.split.size=1874231 -d inputMahoutExamples/RandomForest/rfsplit/trainingSet/* -ds inputMahoutExamples/RandomForest/glass.info -sl 5 -p -t 10 -o inputMahoutExamples/RandomForest/rfmodel 

我得到这个错误

MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath. 
Running on hadoop, using /usr/local/hadoop-2.7.2/bin/hadoop and HADOOP_CONF_DIR=/usr/local/hadoop-2.7.2/etc/hadoop 
MAHOUT-JOB: /usr/local/mahout/examples/target/mahout-examples-0.13.0-job.jar 
17/08/02 16:55:29 WARN MahoutDriver: Unable to add class: org.apache.mahout.classifier.df.mapreduce.BuildForest 
java.lang.ClassNotFoundException: org.apache.mahout.classifier.df.mapreduce.BuildForest 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at org.apache.mahout.driver.MahoutDriver.addClass(MahoutDriver.java:237) 
    at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:128) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:6 

2)我与Mahout的0.13和Hadoop -2.7.2

+0

这个命令来自你试图运行的地方吗?看起来或者类路径不完整,或者你缺少必需的库。 –

+0

从网站上我忘了它的URL,我也试过这个命令 – Tofy

+0

$ HADOOP_HOME/bin/hadoop jar $ MAHOUT_HOME/examples/target/mahout-examples-0.13.0-job.jar org.apache.mahout.classifier.df。 mapreduce.BuildForest -d inputMahoutExamples/RandomForest/rfsplit/trainingSet/* -ds inputMahoutExamples/RandomForest/glass.info -sl 5 -p -t 100 -o inputMahoutExamples/RandomForest/rfmodel – Tofy

$HADOOP_HOME/bin/hadoop jar $MAHOUT_HOME/examples/target/mahout-examples-0.13.0-job.jar org.apache.mahout.classifier.df.mapreduce.BuildForest -d inputMahoutExamples/RandomForest/rfsplit/trainingSet/* -ds inputMahoutExamples/RandomForest/glass.info -sl 5 -p -t 100 -o inputMahoutExamples/RandomForest/rfmodel 

工作还有我得到同样的错误

Exception in thread "main" java.lang.ClassNotFoundException: org.apache.mahout.classifier.df.mapreduce.BuildForest 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:214) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

我觉得这个问题只是用Mahout-0.13。 你觉得呢?

我正面临完全相同的问题。 我认为他们在最后一个版本中没有包括随机森林分类器(虽然不确定)。 它不在文档中显示。即使他们的文档网站仍处于测试模式。 他们提到了两个新的分类:

org.apache.mahout.classifier.df.mapreduce.inmem  

在内存中的MapReduce实现随机决策森林

org.apache.mahout.classifier.df.mapreduce.partial 

部分数据的MapReduce实现随机决策森林的

为了运行t他命令,我不得不下载并加载Mahout 0.11.0版本。但是,我现在感到困惑。为什么我应该使用它并相信产量,而它却被开发者抛弃了? 在以前的版本中,他们提到了一些错误不相关的算法,但更多的管理业绩:

现在,训练不支持多输入文件。输入 数据集必须是一个单一文件(即将发行的版本中将提供此支持,其中 )。分类新数据确实支持多个 输入文件。当调用每个mapper.close()方法 时,树形结构完成。由于映射器不会刷新其状态,因此当数据集很大并且您尝试构建大量的树时,作业可能会失败 。

它虽然工作。