1. 程式人生 > >oozie定時排程的配置說明第一篇

oozie定時排程的配置說明第一篇

如果需要做一個迴圈的定時排程,基本的需要三個檔案

  • job.properties 記錄了job的屬性
  • workflow.xml 使用hPDL 定義任務的流程和分支
  • coordinator.xml 主要用來做workflow的觸發條件,來做定時觸發,也可以組合多個workflow的執行順序
現在講解一個簡單的demo,對ooize進行說明講解 job.properties  該檔案主要是設定一些引數資訊和公共變數 # 叢集引數 #nameNode地址
nameNode=hdfs://master:8020
#resourceManager地址
jobTracker=master:8032
#oozie佇列 這個屬性一般不做修改
queueName=default
# 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>
[email protected]
${sshHost}</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指定模式
 oozie job -config /root/app/job.properties -run  啟動oozie 執行具體的配置檔案 文章參考列表: http://blackproof.iteye.com/blog/1928122
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軟體進行安裝(安裝過程都是下一步,在此不在說了) 第二步:環境變數配置 如果上面完成安