很早就装上了mahout-distribution-0.5,结果运行第一个例子Canopy Clustering的时候就报错,在Mahout的官方主页tutorial页面里写了comment,说明了出错的地方,结果没人搭理。
运行命令如下:
root@master:/opt/mahout-distribution-0.5# bin/mahout org.apache.mahout.clustering.syntheticcontrol.canopy.Job
今天碰巧又运行了一下,仔细看了$MAHOUT_HOME/bin/下的mahout脚本,终于找到出错原因。
在mahout脚本中默认的MAHOUT_CONF_DIR是"$MAHOUT_HOME/src/conf",可是从官方下下来解压后mahout-distribution-0.5的子目录根本没有src(只有源码的压缩包里有,发行版里面没有),倒是有conf,因此这个地方会导致
”WARN driver.MahoutDriver: No org.apache.mahout.clustering.syntheticcontrol.canopy.Job.props found on classpath, will use command-line arguments only“
的错误。
修改方法:编辑bin/mahout,找到这一行:
MAHOUT_CONF_DIR=$MAHOUT_HOME/src/conf
将其修改为
MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
ok,不会报上面那个错了。
别高兴太早,接着运行时会报:
Error: java.lang.ClassNotFoundException: org.apache.mahout.math.Vector
不是吧,看看经过mahout脚本出来的完整命令如下:
/opt/hadoop-0.20.2/bin/hadoop jar /opt/mahout-distribution-0.5/mahout-examples-0.5-job.jar org.apache.mahout.driver.MahoutDriver org.apache.mahout.clustering.syntheticcontrol.canopy.Job
应该没问题啊,math包里面的Vector也在mahout-examples-0.5-job.jar里面啊,怎么会找不到类呢?
凭借长期的Hadoop经验,终于找到原因,原来还在mahout脚本里。
mahout脚本有这么几句:
if [ $IS_CORE == 0 ]
then
# add release dependencies to CLASSPATH
for f in $MAHOUT_HOME/mahout-*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
意思是将mahout-distribution-0.5目录下的所有jar放到CLASSPATH中,然而碰巧mahout-core-0.5.jar排在mahout-examples-0.5-job.jar前面,并且包含类org.apache.mahout.driver.MahoutDriver,因此实际上提交给Hadoop的是mahout-core-0.5.jar,而不是后者。mahout-core-0.5.jar没有Vector类,因此运行时报错。
解决方法:运行命令时在mahout后面加上-core,这样上面的语句不会执行,也就没问题了。
root@master:/opt/mahout-distribution-0.5# bin/mahout -core org.apache.mahout.clustering.syntheticcontrol.canopy.Job
well done,问题解决。
P.S. 其实用
[root@master:/opt/mahout-distribution-0.5]# hadoop jar mahout-examples-0.5-job.jar org.apache.mahout.clustering.syntheticcontrol.canopy.Job
这样的方式运行就不会有问题,不过这样不会读取conf下的props文件。
还有一个问题没解决,就是将Mahout导入Eclipse后,在mahout-core、mahout-examples、mahout-utils下面的pom.xml里面报错,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<copy file="../src/conf/driver.classes.props" tofile="${project.build.directory}/classes/driver.classes.default.props" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
错误为:
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.6:run (execution: default, phase: compile)
不知道如何解决,有达人会的话,请不吝赐教。
分享到:
相关推荐
在"mahout-distribution-0.5.tar.gz"这个压缩包中,包含了Mahout项目0.5版本的所有源代码和相关文件,这对于开发者和学习者来说是一个宝贵的学习资源。在"MiA_SourceCode.zip"中,可能包含了一些特定的示例或教程的...
mahout-distribution-0.5-src.zip mahout 源码包
- mahout-core-0.9.jar:作为最新版本,它集成了更多的改进和新特性,包括算法的优化、API的调整以及对大数据处理的进一步支持。 4. **API变化**: 随着版本的更新,Mahout的API可能会发生变化,比如引入新的接口...
其0.5版本的源代码压缩包“mahout-distribution-0.5-src.tar.gz”提供了丰富的数据挖掘功能,特别强调在Hadoop分布式计算环境中的应用,使得大规模的数据分析变得更为高效和便捷。 Apache Mahout的核心在于其提供的...
重新编译mahout-examples-0.9-job.jar,增加分类指标:最小最大精度、召回率。详情见http://blog.csdn.net/u012948976/article/details/50203249
"mahout-distribution-0.9.tar.gz"是Apache Mahout的0.9版本的发行包,包含了完整的源代码、文档和所需的依赖库。 **一、Mahout的背景与目标** Apache Mahout项目始于2008年,旨在简化大规模机器学习过程,提供可...
Mahout设计时考虑了大数据的处理,它利用Hadoop MapReduce框架进行分布式计算,使得在大规模数据集上运行机器学习任务成为可能。 6. **自定义与扩展**: 拥有源码意味着您可以根据自己的需求对算法进行调整或添加...
Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Apache Mahout项目已经发展到了它的第三个年头...
在Mahout Taste Webapp工程中,需要添加对mahout-examples的依赖,这一步骤是必须的,因为示例代码提供了实际运行推荐系统所必需的组件。 6. 配置推荐引擎的属性 在Mahout Taste Webapp的recommender.properties...
mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7
mahout-0.9-cdh5.5.0.tar.gz
mahout-math-0.8.jar mahout-math-0.8.jar
mahout-core-0.9.jar,支持版本hadoop-2.2.x,由mahout-distribution-0.9.tar.gz源码构建生成jar包。
mahout-math-0.9.jar
在Mahout-distribution-0.8-src这个源代码包中,我们可以深入理解其内部机制,同时也为开发者提供了实现自定义机器学习模型的可能。 一、Mahout 0.8概览 Mahout 0.8 版本是该项目的一个重要里程碑,它包含了丰富的...
1. **分布式计算**:Mahout充分利用了Hadoop的分布式计算框架,能够处理大规模的数据集,使得机器学习算法能够在分布式环境中高效运行。 2. **算法库**:Mahout包含了大量的机器学习算法,如聚类、分类、推荐系统等...
这个压缩包“mahout-distribution-0.12.2-src.tar.gz”是Mahout项目的一个源码版本,版本号为0.12.2,提供给开发者进行深度研究和定制化开发。在解压后的文件“apache-mahout-distribution-0.12.2”中,我们可以找到...
这个"apache-mahout-distribution-0.10.2"压缩包包含的是Mahout的0.10.2版本,该版本是2014年发布的一个稳定版本,旨在帮助大数据研发人员构建和实现复杂的机器学习模型。 在大数据领域,机器学习是关键的技术之一...
mahout中需要用到的一个版本jar包:mahout-core-0.3.jar
mahout-examples-0.10.1-job.jar 已经包含分词程序,替换掉mahout默认的jar包