綜述

隨著互聯網的不斷發展,數據作為人們行為的基本載體已經在各個行業的決策及發展中起著越來越重要的作用,由此也涌現出了一大批處理大數據的、開源的系統及平臺,如HADOOP,HBASE,這些優秀的平臺,從計算處理模到數據存儲模型,都為用戶使用大數據提供了新的思路。但是它們離用戶的業務邏輯卻相對較遠。一個典型的數據處理流程為:
1、業務方產生數據;
2、數據流轉入存儲平臺;
3、數據分析人員書寫處理邏輯;
4、計算平臺執行處理邏輯;
5、結果返回給業務方;
在此過程中,我們無法要求某一個人能夠同時兼顧所有方面,所以就必須要有一個系統來將不同職責的人的工作有機的結合起來,由此即引入了一個概念—任務調度。任務是指數據處理中的某個基本單元,比如一次入庫、計算或出庫;而調度則是按業務邏輯將這些基本單元有機組合并按序執行,直至產生用戶需要的結果數據。
當前最為常用的任務調度即是Crontab調度,按時間先后順序來調起各個處理單元,但由于業務數據處理耗時的不確定性,僅靠時間先后來保證整個流程是不明智的,因此就呼喚更為復雜的、有著嚴格任務依賴順序的調度系統的出現。
此類的的開源項目工程也不斷涌出,像apache下的Oozie,LinkedIn家的Azkaban,taobao的zeus,airbnb家的airflow,luigi,quarz調度組件,筆者所在的公司內部也維護一種自研的調度系統,筆者將從設計目的,技術架構,任務組織架構,頁面友好型等多個方面,從源碼的角度來剖析目前流行的框架,大家可以看到他們有許多共通的東西,當然也有各家獨特的思考。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容