Azkaban介绍
?
Azkaban介紹
為什么需要Azkaban
一個完整的數據分析系統通常都是由大量任務單元組成
shell腳本程序
java程序
mapreduce程序
hive腳本等
各任務單元之間存在時間先后及前后依賴關系, 為了很好地組織起這樣的復雜執行計劃,需要一個工作流調度系統來調度執行;
例如,我們可能有這樣一個需求,某個業務系統每天產生20G原始數據,我們每天都要對其進行處理,處理步驟如下所示:
1. 通過Hadoop先將原始數據同步到HDFS上;
2. 借助MapReduce計算框架對原始數據進行轉換,生成的數據以分區表的形式存儲到多張Hive表中;
3. 需要對Hive中多個表的數據進行JOIN處理,得到一個明細數據Hive大表;
4. 將明細數據進行各種統計分析,得到結果報表信息;
5. 需要將統計分析得到的結果數據同步到業務系統中,供業務調用使用。
常見工作流調度系統
簡單的任務調度:直接使用linux的crontab來定義;
復雜的任務調度:在hadoop領域,常見的工作流調度器有Oozie, Azkaban,Cascading, 等
各種調度工具特性對比
下面的表格對上述四種hadoop工作流調度器的關鍵特性進行了比較,盡管這些工作流調度器能夠解決的需求場景基本一致,但在設計理念,目標用戶,應用場景等方面還是存在顯著的區別,在做技術選型的時候,可以提供參考
| 工作流描述 語言 | XML | XML (xPDL based) | text file with key/value pairs | Java API |
| 依賴機制 | data-driven | explicit | explicit | explicit |
| 是否要web 容器 | No | Yes | Yes | No |
| 進度跟蹤 | console/log messages | web page | web page | Java API |
| Hadoop job調度支 持 | no | yes | yes | yes |
| 運行模式 | command line utility | daemon | daemon | API |
| Pig支持 | yes | yes | yes | yes |
| 事件通知 | no | no | no | yes |
| 需要安裝 | no | yes | yes | no |
| 支持的 hadoop版 本 | 0.18+ | 0.20+ | currently unknown | 0.18+ |
| 重試支持 | no | workflownode evel | yes | yes |
| 運行任意命 令 | yes | yes | yes | yes |
| Amazon EMR支持 | yes | no | currently unknown | yes |
Azkaban 是什么
Azkaban是由Linkedin開源的一個批量工作流任務調度器。用于在一個工作流內以一個特定的順序運行一組工作和流程。
Azkaban定義了一種KV文件(properties)格式來建立任務之間的依賴關系,并提供一個易于使用的web用戶界面維護和跟蹤你的工作流。
它有如下功能特點:
Web用戶界面
基于時間的執行任務
方便上傳工作流
方便設置任務之間的關系
工作流和任務的日志記錄和審計
總結
- 上一篇: flume高可用-balance-测试运
- 下一篇: Azkaban编译和安装模式