2012-11-26 13:06 mahout调用流程分析
2013-01-07 15:23
218 查看
2012-11-26 13:06 http://hi.baidu.com/izouying/item/cea7e76658e85937ac3e83f6
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文件:
文件名是<shortJobName>.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 参数
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文件:
文件名是<shortJobName>.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 参数
相关文章推荐
- 简单学习rpc -- thrift 远程调用流程简单分析
- Realtek 2861 7.1方案 底层接口API调用流程分析
- RxJava && Agera 从源码简要分析基本调用流程(1)
- RxJava && Agera 从源码简要分析基本调用流程(1)
- 利用Anthem.net 实现前台javascript调用服务器端c#函数 及流程分析
- 从USB设备插上到驱动probe调用流程分析
- HEVC/H.265整个程序调用流程分析以及函数复杂度分析
- 从USB设备插上到驱动probe调用流程分析
- open系统调用在内核中的流程分析
- SylixOS中MTD调用底层接口流程分析
- RxJava && Agera 从源码简要分析基本调用流程(2)
- Mybatis源码分析之存储过程调用和运行流程
- Mysql源代码分析系列(3): 主要调用流程--转载
- Retrofit原理及调用流程分析
- Retrofit原理及调用流程分析
- Databinding简单的分析ImageView属性android:src="@{resImgId}"的调用流程
- 关于 axios-mock-adapter 调用流程的分析
- 从USB设备插上到驱动probe调用流程分析
- Mysql源代码分析系列(4): 主要调用流程(续)--转载
- openstack核心路由和扩展路由及路由对应的api函数调用流程分析