Oozie提交作业总结
Posted asin929
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oozie提交作业总结相关的知识,希望对你有一定的参考价值。
命令行方式
最常用的就是通过命令行方式提交,见YARN和HDFS的调用方式汇总中的“使用oozie提交yarn作业环节。
REST方式
使用REST的方式显然更通用,当然原理与上述完全一致。
步骤1–创建工作空间目录
首先在HDFS上创建相应工作空间目录–/user/$user.name/workspaces
,放置oozie要用到的workflow.xml,并创建lib文件夹,里面放置打好的jar包,如下图。注:我这里的user.name变量的值是“hdfs”。
完整的workflow文件如下,里面变量$inputDir
、$outputDir
等的值需要从下一步骤产生的config.xml文件中获取。
特别注意:此处应该把原MR程序中所有的作业设置参数都拿过来,否则即使作业提交成功,结果也不正确!!!
<workflow-app name="test-wordcount" xmlns="uri:oozie:workflow:0.4">
<start to="test-wordcount"/>
<action name="test-wordcount">
<map-reduce>
<job-tracker>$jobTracker</job-tracker>
<name-node>$nameNode</name-node>
<configuration>
<property>
<name>mapreduce.input.fileinputformat.inputdir</name>
<value>$inputDir</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.outputdir</name>
<value>$outputDir</value>
</property>
<property>
<name>mapreduce.job.map.class</name>
<value>wordcount.WordCount$TokenizerMapper</value>
</property>
<property>
<name>mapreduce.job.reduce.class</name>
<value>wordcount.WordCount$IntSumReducer</value>
</property>
<property>
<name>mapreduce.job.combine.class</name>
<value>wordcount.WordCount$IntSumReducer</value>
</property>
<property>
<name>mapreduce.job.output.key.class</name>
<value>org.apache.hadoop.io.Text</value>
</property>
<property>
<name>mapreduce.job.output.value.class</name>
<value>org.apache.hadoop.io.IntWritable</value>
</property>
<property>
<name>mapred.mapper.new-api</name>
<value>true</value>
</property>
<property>
<name>mapred.reducer.new-api</name>
<value>true</value>
</property>
<property>
<name>mapreduce.job.reduces</name>
<value>1</value>
</property>
</configuration>
</map-reduce>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>Action failed, error message[$wf:errorMessage(wf:lastErrorNode())]</message>
</kill>
<end name="end"/>
</workflow-app>
步骤2—新建配置文件
在本地新建配置文件config.xml,定义变量的值,内容如下,
<configuration>
<property>
<name>oozie.use.system.libpath</name>
<value>True</value>
</property>
<property>
<name>security_enabled</name>
<value>False</value>
</property>
<property>
<name>user.name</name>
<value>hdfs</value>
</property>
<property>
<name>oozie.wf.application.path</name>
<value>$nameNode/user/$user.name/workspaces</value>
</property>
<property>
<name>nameNode</name>
<value>hdfs://your-namenode:8020</value>
</property>
<property>
<name>jobTracker</name>
<value>your-jobtracker-server:8032</value>
</property>
<property>
<name>inputDir</name>
<value>$nameNode/user/$user.name/reviews_data.csv</value>
</property>
<property>
<name>outputDir</name>
<value>$nameNode/user/$user.name/output2</value>
</property>
</configuration>
步骤3—提交workflow
curl -X POST -H "Content-Type: application/xml" -d @config.xml "http://oozie-server:11000/oozie/v2/jobs?action=start"
在HUE中查看,
以上是关于Oozie提交作业总结的主要内容,如果未能解决你的问题,请参考以下文章