Airflow 簡介
Airflow是一個基于有向無環圖(DAG)的可編程、調度和監控的工作流平臺,它可以定義一組有依賴的任務,按照依賴依次執行。airflow提供了豐富的命令行工具用于系統管控,而其web管理界面同樣也可以方便的管控調度任務,并且對任務運行狀態進行實時監控,方便了系統的運維和管理。
Airflow 特性
- airflow是一個用來對例行任務進行調度的平臺,可以將所有有依賴關系的任務整合在一起。
- airflow有兩個比較重要的概念:DAG和task,一個task表示一個任務,多個有依賴關系的task組織在一起就是一個DAG。
- airflow中DAG和task都需要寫一段python代碼來實現,使用者需要有部分python基礎知識。
- 我們的每一個任務(task)都可以歸納為一種操作(Operator):比如執行一段shell指令可以理解為BashOperator、運行一個spark任務可以理解為一個SparkOperator。有一些比較特殊的操作,比如判斷一個目錄是否存在,在airflow中屬于SensorOperator。
- 大數據部對airflow提交spark、mr、hive等集群任務都使用genie提交,對這類任務統一封裝成了GenieOperator。(genie是另一個開源服務,通過genie可以遠程提交到多個集群)