oozie定時排程的配置說明第一篇
如果需要做一個迴圈的定時排程,基本的需要三個檔案
- job.properties 記錄了job的屬性
- workflow.xml 使用hPDL 定義任務的流程和分支
- coordinator.xml 主要用來做workflow的觸發條件,來做定時觸發,也可以組合多個workflow的執行順序
nameNode=hdfs://master:8020 #resourceManager地址
jobTracker=master:8032 #oozie佇列 這個屬性一般不做修改
# oozie #coordinator.xml在hdfs上的路徑
oozie.coord.application.path=${nameNode}/work/coordinator.xml #workflow.xml在hdfs上的路徑
workflowAppUri=${nameNode}/work/workflow.xml #workflow的名字
workflowName=workflow #定時任務的開始時間 以UTC時區為準
start=2016-11-03T09:00Z #定時任務的結束時間
end=2019-07-30T16:00Z
# shell指令碼所在路徑或者需要執行的jar包所在的路徑
jarsDir=/home/jar
# shell指令碼所在主機或者需要執行的jar包所在的主機
sshHost=namenode2
workflow.xml <workflow-app xmlns="uri:oozie:workflow:0.2" name="${workflowName}"> <start to="SchedulerMain"/> --啟動的action的名稱
<action name="SchedulerMain">
<ssh xmlns="uri:oozie:ssh-action:0.1">--該動作節點的意思是登入一臺機器,然後執行一條shell命令
<host>
<command>hadoop jar ${jarsDir}/SchedulerMain.jar</command> --需要執行的具體指令碼
</ssh>
<ok to="end"/> --執行成功以後跳轉的節點
<error to="fail"/>--執行失敗以後跳轉的節點
</action>
<kill name="fail">
<message>Java failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
coordinator.xml
#frequency執行頻率 ${coord:minutes(5)}為coordinator內建的EL function (Expression Language) <coordinator-app name="coordinator" frequency="${coord:minutes(5)}" start="${start}" end="${end}" timezone="UTC" xmlns="uri:oozie:coordinator:0.2">
<action>
<workflow>
<app-path>${workflowAppUri}</app-path>
<configuration>
<property>
<name>jobTracker</name>
<value>${jobTracker}</value>
</property>
<property>
<name>nameNode</name>
<value>${nameNode}</value>
</property>
<property>
<name>queueName</name>
<value>${queueName}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>
EL常量
常量表示形式 | 含義說明 |
${coord:minutes(int n)} | 返回日期時間:從一開始,週期執行n分鐘 |
${coord:hours(int n)} | 返回日期時間:從一開始,週期執行n * 60分鐘 |
${coord:days(int n)} | 返回日期時間:從一開始,週期執行n * 24 * 60分鐘 |
${coord:months(int n)} | 返回日期時間:從一開始,週期執行n * M * 24 * 60分鐘(M表示一個月的天數) |
${coord:endOfDays(int n)} | 返回日期時間:從當天的最晚時間(即下一天)開始,週期執行n * 24 * 60分鐘 |
${coord:endOfMonths(1)} | 返回日期時間:從當月的最晚時間開始(即下個月初),週期執行n * 24 * 60分鐘 |
${coord:current(int n)} | 返回日期時間:從一個Coordinator動作(Action)建立時開始計算,第n個dataset例項執行時間 |
${coord:dataIn(String name)} | 在輸入事件(input-events)中,解析dataset例項包含的所有的URI |
${coord:dataOut(String name)} | 在輸出事件(output-events)中,解析dataset例項包含的所有的URI |
${coord:offset(int n, String timeUnit)} | 表示時間偏移,如果一個Coordinator動作建立時間為T,n為正數表示向時刻T之後偏移,n為負數向向時刻T之前偏移,timeUnit表示時間單位(選項有MINUTE、HOUR、DAY、MONTH、YEAR) |
${coord:hoursInDay(int n)} | 指定的第n天的小時數,n>0表示向後數第n天的小時數,n=0表示當天小時數,n<0表示向前數第n天的小時數 |
${coord:daysInMonth(int n)} | 指定的第n個月的天數,n>0表示向後數第n個月的天數,n=0表示當月的天數,n<0表示向前數第n個月的天數 |
${coord:tzOffset()} | ataset對應的時區與Coordinator Job的時區所差的分鐘數 |
${coord:latest(int n)} | 最近以來,當前可以用的第n個dataset例項 |
${coord:future(int n, int limit)} | 當前時間之後的dataset例項,n>=0,當n=0時表示立即可用的dataset例項,limit表示dataset例項的個數 |
${coord:nominalTime()} | nominal時間等於Coordinator Job啟動時間,加上多個Coordinator Job的頻率所得到的日期時間。例如:start=”2009-01-01T24:00Z”,end=”2009-12-31T24:00Z”,frequency=”${coord:days(1)}”,frequency=”${coord:days(1)},則nominal時間為:2009-01-02T00:00Z、2009-01-03T00:00Z、2009-01-04T00:00Z、…、2010-01-01T00:00Z |
${coord:actualTime()} | Coordinator動作的實際建立時間。例如:start=”2011-05-01T24:00Z”,end=”2011-12-31T24:00Z”,frequency=”${coord:days(1)}”,則實際時間為:2011-05-01,2011-05-02,2011-05-03,…,2011-12-31 |
${coord:user()} | 啟動當前Coordinator Job的使用者名稱稱 |
${coord:dateOffset(String baseDate, int instance, String timeUnit)} | 計算新的日期時間的公式:newDate = baseDate + instance * timeUnit,如:baseDate=’2009-01-01T00:00Z’,instance=’2′,timeUnit=’MONTH’,則計算得到的新的日期時間為’2009-03-01T00:00Z’。 |
${coord:formatTime(String timeStamp, String format)} | 格式化時間字串,format指定模式 |
http://shiyanjun.cn/archives/684.html
http://www.cnblogs.com/en-heng/p/5581331.html
相關推薦
oozie定時排程的配置說明第一篇
如果需要做一個迴圈的定時排程,基本的需要三個檔案 job.properties 記錄了job的屬性workflow.xml 使用hPDL 定義任務的流程和分支coordinator.xml 主要用來做workflow的觸發條件,來做定時觸發,也可以組合多個workflow
oozie 定時排程時區設定
oozie是hadoop的工作流,能夠排程hadoop的相關任務,在這裡說一下oozie的時區問題。 時區概念 大家應該知道,地球上按照經緯度將地球劃分為二十四個時區(東、西各12個時區),每兩個相鄰的時區間時間上相差1小時。 標準時間概念 UTC是世界標準時間,
CDH中oozie 定時排程sqoop job
在資料開發中,由於資料量非常的大,有時候需要將關係型資料庫(Oracle/Postgresql/Mysql等)中的表匯入到hdfs中進行分散式儲存。本文就oozie定時呼叫sqoop job從oracle庫中增量匯入資料至hive表具體操作記錄一下: 首先,準備工作是在HD
springCloud微服務系列——配置中心第一篇——配置管理策略
目錄 一、簡介 二、策略 不同的專案 版本管理 一、簡介 從這篇開始總結配置中心,打算分以下內容總結完成 二、策略 springCloud給我們提供了一套管理配置的技術方案,我們需要有自己的管理思路,才能很好
從0開始搭建SQL Server AlwaysOn 第一篇(配置域控)
說明 div rep 工具 標識符 軟件定義 而不是 this 必須 AlwaysOn是SQL Server2012推出的最新的高可用技術,用以取代原有的SQL Serve鏡像 網上的 AlwaysOn可以說是非常的多,也可以說是非常的千篇一律,而且很多都是搭建非常順利
第一篇:Tomcat介紹、安裝、配置
分享圖片 訪問網站 esp ext .tar.gz resp less a20 關閉防火墻 一、Tomcat介紹 Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,有Apache 、Sun和其
Shell實戰第一篇:自動批量創建用戶並配置保存自定義密碼
shell個人筆記分享(在線閱讀):http://note.youdao.com/noteshare?id=c4ee31bdcef0d28ec525bed113c93763&sub=CFE5180F8455421E9D5252FEC98AB1EDShell實戰第一篇:自動批量創建用戶並配置保存自定義密碼
第一篇:saltstack安裝與配置
clu 客戶端 include 是否 htm master ssi system pro 第一篇:saltstack安裝與配置 saltstack 安裝 saltstack yum 源配置 saltstack官方源國內訪問比較慢,建議使用阿裏雲源 #centos 6 yum
【任務排程系統第一篇】:大資料任務排程框架
1.前言 任務排程系統在大資料平臺架構中扮演著比較重要的角色。下圖是引自網易的猛獁大資料平臺lambda架構圖。 其中的Azkaban就是其任務排程元件。概括來說,任務排程在大資料平臺中所扮演的角色主要有: 任務編排:對任務流按照一定的邏輯串起來。這在大資料開發中
小白入門Java開發第一篇:環境配置
1、下載JDK1.8_162(我就是用的這個版本喲):https://pan.baidu.com/s/1G5PEcaqzX_vy63wsFVeZ3Q 下載完成後,雙擊安裝。一直下一步就可以了(百度上有很多教程) 2、配置環境變數: 其中: JAVA_HOME(JDK安裝的所在
第一篇 Spring boot 配置檔案筆記
spring boot 不需要配置太多檔案程式便可正常執行,特殊情況需要我們自己配置檔案。 專案以IDEA寫例項,系統會預設在src/main/java/resources目錄下建立application.properties檔案,配置檔案支援兩種格式properties/yml。 prop
第一篇 Spring boot 配置文件筆記
spring ati oot bsp value 程序 需要 style 指定 spring boot 不需要配置太多文件程序便可正常運行,特殊情況需要我們自己配置文件。 項目以IDEA寫實例,系統會默認在src/main/java/resources目錄下創建ap
前端開發小獅子使用github展現個人網站專案(第一篇:安裝Git以及配置環境)2018.12.11
前端開發小獅子使用github(第一篇:安裝Git以及配置環境) 背景:個人使用的電腦系統為 win10 1、下載安裝git,官網下載地址:https://git-scm.com/download/win 下載速度可能有點慢,稍作休息 2、安裝過程直接預設就可以,一直
nginx教程第一篇:nginx安裝、配置
一、簡介 為什麼選擇Nginx? 更快 這表現在兩個方面: 一方面, 在正常情況下, 單次請求會得到更快的響應; 另一方面, 在高峰期( 如有數以萬計的併發請求) , Nginx可以比其他Web伺服器
ssm中配置Quartz定時排程任務
1.首先在你web專案中pom.xml配置相關依賴jar包,非maven專案自行新增對應版本的jar檔案 pom.xml: <!-- quartz定時器相關依賴jar版本 --> <dependency> <groupId>or
Spring配置Quartz實現定時排程任務
一 Quartz 一個開源的作業排程框架,配置執行定時任務 二 配置 1 依賴 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>
linux第一篇,網路配置與基本元件安裝
宣告:部分內容為引用,如有侵權請聯絡作者本人進行修改,謝謝。 1、 系統選擇 在安裝centOS時有以下幾個版本: 按檢視分:(Minimal)Desktop、Teminal,就是否純命令還是視覺化的一個區別 按軟體功能分:Basic Server、Minimal,前者是系統自帶安裝平臺支援軟體和常用
Angular -- 學習心得第一篇之環境配置
AngularJs(簡稱ng)是一個用於設計動態web應用的結構框架。首先,它是一個框架,不是類庫,是像EXT一樣提供一整套方案用於設計web應用。它不僅僅是一個Javascript框架,因為它的核心其實是對HTML標籤的增強。何為HTML標籤增強?其實就是使你
深入理解定時器系列第一篇——理解setTimeout和setInterval
前面的話 很長時間以來,定時器一直是javascript動畫的核心技術。但是,關於定時器,人們通常只瞭解如何使用setTimeout()和setInterval(),對它們的內在執行機制並不理解,對於與預想不同的實際執行狀況也無法解決。本文將詳細介紹定時器的相關內容 setTimeout()
RabbitMQ第一篇:RabbitMQ的安裝和配置
在Windows下進行rabbitMQ的安裝 第一步:軟體安裝 如果安裝rabbitMQ首先安裝基於erlang語言支援的OTP軟體,然後在下載rabbitMQ軟體進行安裝(安裝過程都是下一步,在此不在說了) 第二步:環境變數配置 如果上面完成安