久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oozie的coordinator怎么配置

168次閱讀
沒有評論

共計 2695 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章主要介紹“Oozie 的 coordinator 怎么配置”,在日常操作中,相信很多人在 Oozie 的 coordinator 怎么配置問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Oozie 的 coordinator 怎么配置”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

coordinator 是 workflow 的定時提交器,基于時間條件與數據生成觸發(based on time and data triggers)。簡單點說,coordinator 按所定義的時間周期進行輪詢,若數據生成條件滿足,則觸發 workflow 任務;否則,則等待數據生成或跳過(調度策略由設置的超時時間決定)。

coordinator-app

coordinator-app name= coord-demo  frequency= ${coord:days(1)}  start= ${start_time}  end= ${end_time} 
timezone= Asia/Shanghai  xmlns= uri:oozie:coordinator:0.1

文件頭定義了 coordinator 任務的名稱,執行頻率(frequency),開始與起止時間(start、end)。${coord:days(1)} 為 coordinator 內置的 EL function (Expression Language),表示為執行周期為一天。frequency 的時間單位為分鐘,則 ${coord:days(1)}=1440,${coord:hours(3)}=180. 一般地,在 job.properties 定義如:start_time=2016-06-07T00:00Z,應以 UTC 時區為準。

Control information

controls 
  !-- 超時時間,若為 0,一旦數據生成超時則 coordinator action 被丟棄;  若為 -1,則一直等待數據生成;  若    0,即為超時時間(單位:分鐘)-- 
  timeout -1 /timeout 
  !-- 并發 action 數 -- 
  concurrency 1 /concurrency 
  !-- 同時被觸發的多個 coordinator job 的執行次序 -- 
  execution ${execution_order} /execution 
 /controls

datasets

datasets 
  !-- 數據生成目錄 -- 
  dataset name= data  frequency= ${coord:hours(1)}  initial-instance= ${start_time}  timezone= ${timezone} 
  uri-template ${nameNode}/path/to/${YEAR}-${MONTH}-${DAY}/${HOUR}/ /uri-template 
  done-flag /done-flag 
  /dataset 
 /datasets

相關參數:

initial-instance,對應初始時間的數據目錄,作為時間周期偏移的基準目錄

uri-template,文件目錄 HDFS 目錄,${YEAR}、${MONTH} 等為 EL Time Constants,具體數值由   傳入,也可通過 job.properties 傳入自定義的參數。

done-flag,數據目錄生成的文件標識,若未指定,則默認為 _SUCCESS 文件;若指定為空,則表示文件夾本身。

input-events

input-events 
  data-in name= dataReady  dataset= data 
  instance ${coord:current(-1)} /instance 
  /data-in 
 /input-events

定義了數據觸發條件,${coord:current(-1)} 表示對于當前時間的偏移,其中偏移量 = 數值 * dataset frequency。有些時候,我們要判斷多個目錄是否生成,比如,判斷一天的 24 個小時目錄,這時應這樣寫:

data-in name= dataReady2  dataset= data 
  start-instance ${coord:current(-24)} /start-instance 
  end-instance ${coord:current(-1)} /end-instance 
 /data-in

action

action 
  workflow 
  app-path ${wf_app_path} /app-path 
  configuration 
  property 
  name dayTime /name 
  value ${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1,  DAY ),  yyyy-MM-dd )} /value 
  /property 
  /configuration 
  /workflow 
 /action

定義 coordinator 要觸發的 workflow,

app-path,workflow 所在的 HDFS 目錄;

property,定義傳給 workflow 的參數

coordinator 提供了一些用于時間計算的函數,比如:

coord:nominalTime(),返回 coordinator 的每一執行周期的當前時間;

coord:dateOffset(String baseDate, int instance, String timeUnit),計算偏移后的時間,newDate = baseDate + instance * timeUnit;

coord:formatTime(String ts, String format),定義格式化的時間,其中 format 應遵循 Java s SimpleDateFormat。

返回多個時間:

value ${coord:formatTime(coord:dateOffset(coord:dateOffset(coord:nominalTime(), -12,  HOUR ), -6,  DAY ),  yyyy-MM-dd )},${coord:formatTime(coord:dateOffset(coord:dateOffset(coord:nominalTime(), -12,  HOUR ), -5,  DAY ) /value

到此,關于“Oozie 的 coordinator 怎么配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2695字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 屯昌县| 大石桥市| 公安县| 高阳县| 景洪市| 印江| 三河市| 汉寿县| 贡嘎县| 神木县| 岳池县| 怀化市| 西林县| 伊金霍洛旗| 迁西县| 全州县| 铜陵市| 华亭县| 宁德市| 德阳市| 灵丘县| 常德市| 石屏县| 正蓝旗| 茶陵县| 南部县| 双辽市| 德清县| 平远县| 三原县| 安国市| 蒲城县| 金堂县| 石首市| 商丘市| 平定县| 佛坪县| 江源县| 松桃| 随州市| 凌源市|