定時任務(wù)調(diào)度——oozie總結(jié)

簡介

(翻譯自官網(wǎng)

Oozie是一個用于管理Apache Hadoop作業(yè)的工作流調(diào)度程序系統(tǒng)全肮。

Oozie Workflow job是由多個Action組成的有向無環(huán)圖(DAG)锥腻。

Oozie Coordinator job是根據(jù)時間(頻率)和數(shù)據(jù)可用性觸發(fā)的可重復(fù)執(zhí)行的Oozie Workflow job(簡單講就是根據(jù)時間或數(shù)據(jù)條件儡炼,規(guī)劃workflow的執(zhí)行)。

Oozie與Hadoop技術(shù)棧的項目集成占婉,支持多種類型的Hadoop作業(yè)(例如Java map-reduce丐膝,Streaming map-reduce,Pig蔓纠,Hive褒搔,Sqoop和Distcp绊汹,Spark)以及系統(tǒng)特定的工作(例如Java程序和shell腳本)。

Oozie是一個可水平擴展昼窗,可靠和可使用擴展插件(scalable, reliable and extensible)的系統(tǒng)蚯妇。

使用oozie命令行執(zhí)行shell workflow

這里使用cdh虛擬機自帶的oozie examples中的例子猴誊,執(zhí)行hdfs dfs -put examples examples,將examples上傳到hdfs侮措。
打開apps/shell/ 可以看到j(luò)ob.properties和workflow.xml兩個文件,在workflow.xml中定義action和workflow乖杠,在job.properties中定義各種變量分扎。示例如下:

job.properties

nameNode=hdfs://quickstart.cloudera:8020 #指定hadoop的nameNode
jobTracker=quickstart.cloudera:8032 #指定jobTracker,如果使用yarn則指定為resource manager的applications manager端口
queueName=default
examplesRoot=examples

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/shell #指定workflow.xml的位置

workflow.xml

<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf">
<start to="shell-node"/>
<action name="shell-node">
    <shell xmlns="uri:oozie:shell-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
        <exec>echo</exec>
        <argument>my_output=Hello Oozie</argument>
        <capture-output/>
    </shell>
    <ok to="check-output"/>
    <error to="fail"/>
</action>
<decision name="check-output">
    <switch>
        <case to="end">
            ${wf:actionData('shell-node')['my_output'] eq 'Hello Oozie'}
        </case>
        <default to="fail-output"/>
    </switch>
</decision>
<kill name="fail">
    <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<kill name="fail-output">
    <message>Incorrect output, expected [Hello Oozie] but was [${wf:actionData('shell-node')['my_output']}]</message>
</kill>
<end name="end"/>
</workflow-app>

可以看到這里定義了一個shell workflow胧洒,它的DAG如下:

image

首先是start,end,kill三個控制節(jié)點畏吓,分別指定了workflow開始時,結(jié)束時卫漫,kill時的行為菲饼。

start指向了一個名為shell-node的action,該action執(zhí)行了ehco命令列赎,并使用capture-output獲取標(biāo)準(zhǔn)輸出宏悦。如果執(zhí)行成功,則進入decision node check-output如果輸出結(jié)果正確則順利結(jié)束,否則輸出錯誤信息饼煞。

然后使用以下命令測試(這里的config是使用的是本地文件)

oozie job -oozie http://quickstart.cloudera:11000/oozie -config ~/oozie-examples/examples/apps/shell/job.properties -dryrun

如果成功源葫,會顯示OK

然后使用一下命令執(zhí)行該workflow

oozie job -oozie http://quickstart.cloudera:11000/oozie -config ~/oozie-examples/examples/apps/shell/job.properties -run

最后,使用oozie job -oozie http://quickstart.cloudera:11000/oozie -info workflowID查看任務(wù)運行狀態(tài)

也可以在hue中或者oozie web控制臺中查看任務(wù)運行狀態(tài)砖瞧。

配置hive任務(wù)

數(shù)據(jù)準(zhǔn)備:使用了權(quán)力與榮耀2017 ios的addcash的數(shù)據(jù)息堂,test.hql(插入一條數(shù)據(jù))

首先需要上傳hive-site.xml到hdfs,Oozie需要通過該文件找到Hive Metastore块促,另外上傳寫好的hql文件到hdfs荣堰。然后向workflow中加入hive script action。并按圖中的配置設(shè)置好hive腳本和hive-site.xml竭翠。保存即可振坚。

image

寫workflow.xml和使用hue配置action,兩者是等價的逃片。

最后使用coordinator設(shè)定每小時執(zhí)行一次屡拨。也可以設(shè)置輸入,當(dāng)指定位置有數(shù)據(jù)時才開始執(zhí)行褥实;設(shè)置輸出呀狼,將數(shù)據(jù)輸出到指定位置。

如果coordinator設(shè)定的開始時間比當(dāng)前時間早的話损离,會先將開始時間和當(dāng)前時間之間應(yīng)該執(zhí)行的workflow全部執(zhí)行一遍哥艇。

image

參考文獻:

Oozie官方文檔

Hue官方文檔

cloudera community

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市僻澎,隨后出現(xiàn)的幾起案子貌踏,更是在濱河造成了極大的恐慌,老刑警劉巖窟勃,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祖乳,死亡現(xiàn)場離奇詭異,居然都是意外死亡秉氧,警方通過查閱死者的電腦和手機眷昆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汁咏,“玉大人亚斋,你說我怎么就攤上這事∪撂玻” “怎么了帅刊?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長漂问。 經(jīng)常有香客問我赖瞒,道長女揭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任冒黑,我火速辦了婚禮田绑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抡爹。我一直安慰自己掩驱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布冬竟。 她就那樣靜靜地躺著欧穴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泵殴。 梳的紋絲不亂的頭發(fā)上涮帘,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音笑诅,去河邊找鬼调缨。 笑死,一個胖子當(dāng)著我的面吹牛吆你,可吹牛的內(nèi)容都是我干的弦叶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妇多,長吁一口氣:“原來是場噩夢啊……” “哼伤哺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起者祖,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤立莉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后七问,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜓耻,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年械巡,在試婚紗的時候發(fā)現(xiàn)自己被綠了刹淌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坟比,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嚷往,到底是詐尸還是另有隱情葛账,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布皮仁,位于F島的核電站籍琳,受9級特大地震影響菲宴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜趋急,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一喝峦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呜达,春花似錦谣蠢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至霜威,卻和暖如春谈喳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背戈泼。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工婿禽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人大猛。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓扭倾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胎署。 傳聞我的和親對象是個殘疾皇子吆录,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 為什么需要任務(wù)調(diào)度框架 在進行數(shù)據(jù)處理的時候,需要進行數(shù)據(jù)采集琼牧、數(shù)據(jù)清洗恢筝、數(shù)據(jù)分析等操作,每一個過程都可能涉及到多...
    心_的方向閱讀 6,212評論 1 6
  • 一. Oozie簡介 Apache Oozie是用于Hadoop平臺的一種工作流調(diào)度引擎巨坊。 作用 統(tǒng)一調(diào)度ha...
    達微閱讀 1,786評論 0 3
  • * Oozie部署 (與之前幾節(jié)內(nèi)容重復(fù)則不再贅述撬槽,比如解壓,安裝之類的) 1趾撵、 Hadoop已經(jīng)成功安裝并配置 ...
    浪客劍心_a3b5閱讀 1,398評論 0 0
  • 踢得很放松侄柔,和踢得很隨意。
    leo_s閱讀 389評論 2 4
  • 近期關(guān)于情商與修養(yǎng)的感悟來源于6月中旬觀看的“黃門宴”話劇占调。 剛開始暂题,看到這個話劇的名字,我以為是介紹某個地方的飲...
    阿磚成長筆記閱讀 1,657評論 0 2