java mahout使用教程_Mahout使用简例

剖析mahout脚本

mahout 位于$MAHOUT_HOME/bin目录下,是所有mahout调用的入口。

主要会做各类环境变量的设置。

MAHOUT_JAVA_HOME:指定java的执行路劲,会覆盖$JAVA_HOME

MAHOUT_HEAPSIZE   :JAVA运行堆栈的内存大小

HADOOP_CONF_DIR  : hadoop 配置文件路径主要是*-site.xml这些文件的位置

MAHOUT_OPTS           : mahout运行时的java参数

MAHOUT_CONF_DIR    :类文件属性文件所在文件,文件名是类名简写,默认位置$MAHOUT_HOME/src/conf

MAHOUT_LOCAL         : 设置是否本地运行,如果设置这个参数就不会运行hadoop了,一旦设置这个参数,那HADOOP_CONF_DIR 和HADOOP_HOME 这两个参数的设置就自动失效了。

MAHOUT_CORE          :是否应用开发环境的core,还是发布的core。

参数-core                  指定引用包的路径

案例调用流程

要运行example的时候,最终的触发语句如下:

exec"$HADOOP_BINARY" jar $MAHOUT_JOB $CLASS "$@"

1、$HADOOP_BINARY 就是hadoop的执行文件

2、$MAHOUT_JOB:  就是mahout-examples-*-job.jar 所在位置

3、$CLASS   :      是默认的 org.apache.mahout.driver.MahoutDriver

4、$@           :      就是要调用的class名字,比如org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

三、对org.apache.mahout.driver.MahoutDriver加载mapping文件:

加载driver.classes.props 文件,此文件要路径应保存在classpath路径上。

此属性文件的内容,主要是一个全名称的class名与简写class名的映射关键,并且还有class注释说明。模板fully.qualified.class.name =shortJobName : descriptive string

比如:    org.apache.mahout.utils.vectors.VectorDumper= vectordump : Dump vectors from a sequence file to text

上面这个映射关系是从driver.classes.default.props文件找到的。

MahoutDriver会先加载driver.classes.props,如果没有driver.classes.props这个文件。那就会加载driver.classes.default.props。

加载类默认指定props文件:

文件名是.props,具体类的属性或参数文件。格式如下

i|input =/path/to/my/input

o|output = /path/to/my/output

m|jarFile = /path/to/jarFile

# etc-each line is shortArg|longArg = value

剩余参数解析

剩余参数可以是在mapping文件中定义过的shortJobName,已经shortJobName类需要用到的参数,从命令行传入的参数会覆盖shortJobName.props中定义的参数。

如果在要运行vecDump这个类在mapping文件中定义也就是driver.classes.props 或者driver.classes.default.props文件中定义:

org.apache.mahout.utils.vectors.VectorDumper= vecDump : dump vectors from a sequence file

全名称类名    = 缩写类名称: 功能描述

定义vecdump.props文件

o|output = /tmp/vectorOut

s|seqFile = /my/vector/sequenceFile

运行指令

$MAHOUT_HOME/bin/mahoutrun vecDump -s /my/otherVector/sequenceFile

在命令行中的参数–s 会覆盖在vecdump.props中的定义的s参数

最终的执行指令参数为

{"--output","/tmp/vectorOut", "-s","/my/otherVector/sequenceFile"}

如果还有其他参数需要传入的话,就用-Dkey=value的形式

PS:将工程导入eclipse中。在导入前需要执行mvn eclipse:eclipse

将导入的功能右键选中pom.xml 执行mvn build 就可以编译你修改过的内容了。

测试修改的内容,可以参考example中的shell脚本调用。需要注意的是需要设置MAHOUT_CORE或-core 参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值