`
JerryLead
  • 浏览: 77139 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Mahout-0.5运行时异常处理

阅读更多

很早就装上了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)

不知道如何解决,有达人会的话,请不吝赐教。

0
0
分享到:
评论
3 楼 hitliya 2013-04-11  
请问"将Mahout导入Eclipse后,在mahout-core、mahout-examples、mahout-utils下面的pom.xml里面报错"这个问题你解决了吗 ? 被困惑其中..
2 楼 JerryLead 2011-10-19  
hongst 写道
刚好遇到一样的错误,可以通过添加环境变量的方法解决:

export MAHOUT_HOME=$HOME/mahout
export MAHOUT_BIN=$MAHOUT_HOME/bin
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export MAHOUT_CORE=yes

export PATH=$MAHOUT_BIN:$PATH

呵呵,多谢,以前也试过修改环境变量,不过没有你的详细啊。
1 楼 hongst 2011-10-19  
刚好遇到一样的错误,可以通过添加环境变量的方法解决:

export MAHOUT_HOME=$HOME/mahout
export MAHOUT_BIN=$MAHOUT_HOME/bin
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export MAHOUT_CORE=yes

export PATH=$MAHOUT_BIN:$PATH

相关推荐

    mahout-distribution-0.5.tar.gz + 源码

    在"mahout-distribution-0.5.tar.gz"这个压缩包中,包含了Mahout项目0.5版本的所有源代码和相关文件,这对于开发者和学习者来说是一个宝贵的学习资源。在"MiA_SourceCode.zip"中,可能包含了一些特定的示例或教程的...

    mahout-distribution-0.5-src.zip mahout 源码包

    mahout-distribution-0.5-src.zip mahout 源码包

    mahout-core-0.9.jar+mahout-core-0.8.jar+mahout-core-0.1.jar

    - mahout-core-0.9.jar:作为最新版本,它集成了更多的改进和新特性,包括算法的优化、API的调整以及对大数据处理的进一步支持。 4. **API变化**: 随着版本的更新,Mahout的API可能会发生变化,比如引入新的接口...

    mahout-distribution-0.5-src.tar.gz )

    其0.5版本的源代码压缩包“mahout-distribution-0.5-src.tar.gz”提供了丰富的数据挖掘功能,特别强调在Hadoop分布式计算环境中的应用,使得大规模的数据分析变得更为高效和便捷。 Apache Mahout的核心在于其提供的...

    mahout-examples-0.9-job.jar(修改版)

    重新编译mahout-examples-0.9-job.jar,增加分类指标:最小最大精度、召回率。详情见http://blog.csdn.net/u012948976/article/details/50203249

    mahout-distribution-0.9.tar.gz

    "mahout-distribution-0.9.tar.gz"是Apache Mahout的0.9版本的发行包,包含了完整的源代码、文档和所需的依赖库。 **一、Mahout的背景与目标** Apache Mahout项目始于2008年,旨在简化大规模机器学习过程,提供可...

    apache-mahout-distribution-0.11.0-src.zip

    Mahout设计时考虑了大数据的处理,它利用Hadoop MapReduce框架进行分布式计算,使得在大规模数据集上运行机器学习任务成为可能。 6. **自定义与扩展**: 拥有源码意味着您可以根据自己的需求对算法进行调整或添加...

    mahout-distribution-0.5-src

    Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Apache Mahout项目已经发展到了它的第三个年头...

    如何成功运行Apache Mahout的Taste Webapp-Mahout推荐教程-Maven3.0.5-JDK1.6-Mahout0.5

    在Mahout Taste Webapp工程中,需要添加对mahout-examples的依赖,这一步骤是必须的,因为示例代码提供了实际运行推荐系统所必需的组件。 6. 配置推荐引擎的属性 在Mahout Taste Webapp的recommender.properties...

    mahout-integration-0.7

    mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7

    mahout-0.9-cdh5.5.0.tar.gz

    mahout-0.9-cdh5.5.0.tar.gz

    mahout-math-0.8.jar

    mahout-math-0.8.jar mahout-math-0.8.jar

    mahout-core-0.9.jar

    mahout-core-0.9.jar,支持版本hadoop-2.2.x,由mahout-distribution-0.9.tar.gz源码构建生成jar包。

    mahout-math-0.9.jar

    mahout-math-0.9.jar

    mahout-distribution-0.8-src

    在Mahout-distribution-0.8-src这个源代码包中,我们可以深入理解其内部机制,同时也为开发者提供了实现自定义机器学习模型的可能。 一、Mahout 0.8概览 Mahout 0.8 版本是该项目的一个重要里程碑,它包含了丰富的...

    mahout-distribution-0.9-src.zip

    1. **分布式计算**:Mahout充分利用了Hadoop的分布式计算框架,能够处理大规模的数据集,使得机器学习算法能够在分布式环境中高效运行。 2. **算法库**:Mahout包含了大量的机器学习算法,如聚类、分类、推荐系统等...

    mahout-distribution-0.12.2-src.tar.gz

    这个压缩包“mahout-distribution-0.12.2-src.tar.gz”是Mahout项目的一个源码版本,版本号为0.12.2,提供给开发者进行深度研究和定制化开发。在解压后的文件“apache-mahout-distribution-0.12.2”中,我们可以找到...

    apache-mahout-distribution-0.10.2

    这个"apache-mahout-distribution-0.10.2"压缩包包含的是Mahout的0.10.2版本,该版本是2014年发布的一个稳定版本,旨在帮助大数据研发人员构建和实现复杂的机器学习模型。 在大数据领域,机器学习是关键的技术之一...

    mahout-core-0.3.jar

    mahout中需要用到的一个版本jar包:mahout-core-0.3.jar

    mahout-examples-0.10.1-job.jar

    mahout-examples-0.10.1-job.jar 已经包含分词程序,替换掉mahout默认的jar包

Global site tag (gtag.js) - Google Analytics