最常用的就是通過命令列方式提交,見yarn和hdfs的呼叫方式彙總中的「使用oozie提交yarn作業環節。
使用rest的方式顯然更通用,當然原理與上述完全一致。
首先在hdfs上建立相應工作空間目錄–/user/$/workspaces
,放置oozie要用到的workflow.xml,並建立lib資料夾,裡面放置打好的jar包,如下圖。注:我這裡的user.name變數的值是「hdfs」。
完整的workflow檔案如下,裡面變數$
、$
等的值需要從下一步驟產生的config.xml檔案中獲取。
特別注意:此處應該把原mr程式中所有的作業設定引數都拿過來,否則即使作業提交成功,結果也不正確!!!
name="test-wordcount"
xmlns="uri:oozie:workflow:0.4">
to="test-wordcount"/>
name="test-wordcount">
$job-tracker>
$name-node>
mapreduce.input.fileinputformat.inputdirname>
$value>
property>
mapreduce.output.fileoutputformat.outputdirname>
$value>
property>
mapreduce.job.map.classname>
property>
mapreduce.job.reduce.classname>
wordcount.wordcount$intsumreducervalue>
property>
mapreduce.job.combine.classname>
wordcount.wordcount$intsumreducervalue>
property>
mapreduce.job.output.key.classname>
org.apache.hadoop.io.textvalue>
property>
mapreduce.job.output.value.classname>
org.apache.hadoop.io.intwritablevalue>
property>
truevalue>
property>
mapred.reducer.new-apiname>
truevalue>
property>
mapreduce.job.reducesname>
1value>
property>
configuration>
map-reduce>
to="end"/>
to="kill"/>
action>
name="kill">
action failed, error message[$]message>
kill>
name="end"/>
在本地新建配置檔案config.xml,定義變數的值,內容如下,
oozie.use.system.libpathname>
truevalue>
property>
security_enabledname>
falsevalue>
property>
user.namename>
hdfsvalue>
property>
$/user/$/workspacesvalue>
property>
namenodename>
hdfs://your-namenode:8020value>
property>
jobtrackername>
your-jobtracker-server:8032value>
property>
inputdirname>
$/user/$/reviews_data.csvvalue>
property>
outputdirname>
$/user/$/output2value>
property>
configuration>
curl -x post -h
-d @config.
xml"http://oozie-server:11000/oozie/v2/jobs?action=start"在hue中檢視,
oozie 重新提交作業
在oozie的執行過程當中可能會出現錯誤,比如資料庫連線不上,或者作業執行報錯導致流程進入suspend或者killed狀態,這個時候我們就要分析了,如果確實是資料或者是網路有問題,我們比如把問題解決了才可以重新執行作業。重新執行作業分兩種情況,suspend狀態和killed狀態的,這兩種狀態是要...
Oozie學習總結
oozie是乙個管理hadoop作業 可伸縮 可擴充套件 可靠的工作流排程系統。主要有三大功能模組構成 workflow 工作流 定義job任務執行。coordinator 定時觸發workflow,週期性執行workflow bundle job 繫結多個coordinator,一起提交或觸發所以...
Oozie 排程 shell 指令碼提交不到yarn
在oozied web找錯誤 原因是yarn site.xml中的兩處配置值太小了,不滿足作業的申請條件 把yarn site.xml中的兩處配置加大一點 容器記憶體 yarn.nodemanager.resource.memory mb 最大容器記憶體 yarn.scheduler.maximum...