利用apache oozie workflow引擎,可以解決基於特定時間,特定時間,特定資源的一組mapreduce作業。
oozie主要由下面4個功能元件構成:
1,oozie workflow--該元件用於定義和執行乙個特定順序的mapreduce,hive和pig作業。
2,oozie coordinator --該元件用於支援事件,系統資源存在性等條件的workflow的自動執行。
3,oozie bundle -- 該引擎可以定義和執行「一束」應用,從而提供乙個批量化方法,將一組coordinator應用程式一起進行管理。
4,oozie 服務等級協定(service level agreement, sla) --該元件支援workflow應用執行過程的記錄跟蹤。
oozie workflow的定義主要基於以下概念:
1,動作(action)--這是關於乙個的workflow任務/步驟的約定。eg:乙個mapreduce的作業,一段**執行,乙個hive腳步等。
2,轉換(transition)--這是關於乙個給定動作完成時,哪個動作可以隨後執行的約定。描述一種動作之間的依賴關係的方法。
3,workflow是一組排列在一張依賴順序圖中的動作和轉換集合。
4,workflow應用程式--這是由oozie workflow語言定義的oozie workflow。oozie伺服器會對oozie workflow應用程式定義進行解釋,並儲存到oozie資料庫中。
5,workflow作業--這是oozie伺服器中的乙個程序,它解釋oozie workflow定義。oozie workflow任務會控制動作提交的順序和條件。
oozie 還支援兩種不同型別的動作(action):
1,同步--該型別的動作在oozie伺服器自己的執行執行緒中執行。
2,非同步--該型別的動作在hadoop集群中以mapreduce(或hive/pig/sqoop)作業的形式執行。oozie伺服器初始化非同步動作的執行,並等待起結束。
oozie workflow的轉換,有如下兩種型別的條件來決定:
1,結構條件--該類轉換時在workflow dag中靜態定義的**換和fork-join結構)。
2,執行時執行條件--該型別轉換可以使用前面動作執行結果,形式包括程序變數(switch-case結構)和成功/失敗路徑。
控制流節點:
start節點--start --定義oozie workflow的起始點
end節點 -- end --定義oozie workflow的結束點
decision節點 -- decision --用於表述「switch-case」邏輯
fork節點--fork--該節點會把執行流程叉開為多個併發的路徑
join節點--join--該節點表示workflow的執行要進行等待,知道前一次fork節點產生的所有併發執行路徑都達到join節點
sub-workflow節點--sub-workflow--該節點會呼叫乙個子workflow
kill節點--kill--該節點會使oozie伺服器強制殺死當前的workflow作業
高階程式設計之 socker程式設計
用來標記網路上的一台電腦 window ifconfiglinux ipconfig1 1 3 1.ipv4 被廣泛使用的 ip協議的版本號是4 當前再用,目前被廣泛應用 ipv4的位址位數為32位 4位位元組 位址有限,幾乎全部耗盡 1 1 3 2.ipv6 ip協議的版本號是6 ipv6的位址位...
高階程式設計之網路程式設計(三)
io 模型 1 阻塞模型 fifo pipe read fgetc fgets fread recv recvfrom 以上獲取資料的函式預設都是阻塞方式接收資料。2 非阻塞模型 2.1 在開始階段的open函式部分調整 open fifo o rdonly o nonblock 函式 open r...
C 高階程式設計之「反射」
一,定義 反射技術,能夠讓託管 在執行時檢視元資料以及 的各方面資訊。二,常用方法 1,獲取物件方法 必須以public修飾的方法,不包括建構函式 2,獲取物件屬性 3,獲取物件的父類 附示例 using system using system.collections.generic using s...