集羣 | 分佈式 |
---|---|
一個物理形態 | 一種工做方式 |
只要是一堆機器,就能夠稱爲集羣,至於它們是否協做幹活,這個誰也不知道 | 一個程序或者系統,只要運行在不一樣的機器上,就能夠叫分佈式(固然,C/S架構也能夠叫分佈式) |
通常是物理集中、統一管理的 | 不強調物理集中、統一管理 |
集羣可能運行着一個或多個分佈式系統,也可能根本沒有運行分佈式系統;web
分佈式系統可能運行在一個集羣上,也可能運行在不屬於一個集羣的多臺(2臺也算是多臺)機器上。sql
Airflow是Airbnb開源的一個用Python編寫的調度工具。架構
DAG分佈式
Task工具
在配置中,它是做業開始調度時間。而在談論執行情況時,它是調度開始時間。日誌
調度執行週期。code
執行時間。在Airflow中稱爲執行時間,但其實它並非真實的執行時間。cdn
[敲黑板,劃重點]server
因此,第一次調度時間:在做業中配置的start_date,且知足schedule_interval的時間點。記錄的execution_date爲做業中配置的start_date的第一個知足schedule_interval的時間。blog
[舉個例子]
假設咱們配置了一個做業的start_date爲2019年6月2日,配置的schedule_interval爲* 00 12 * * *
,那麼第一次執行的時間將是2019年6月3日 12點。所以execution_date並非如期字面說的表示執行時間,真正的執行時間是execution_date所顯示的時間的下一個知足schedule_interval的時間點。
可是有時候僅僅靠配置做業依賴和調度執行週期並不能知足一些複雜的需求
Airflow 提供了一個可視化的 Web 界面。啓動 WebServer 後,就能夠在 Web 界面上查看定義好的 DAG 並監控及改變運行情況。也能夠在 Web 界面中對一些變量進行配置。
通常來講咱們用 Celery Worker 來執行具體的做業。Worker 能夠部署在多臺機器上,並能夠分別設置接收的隊列。當接收的隊列中有做業任務時,Worker 就會接收這個做業任務,並開始執行。Airflow 會自動在每一個部署 Worker 的機器上同時部署一個 Serve Logs 服務,這樣咱們就能夠在 Web 界面上方便的瀏覽分散在不一樣機器上的做業日誌了。
整個 Airflow 的調度由 Scheduler 負責發起,每隔一段時間 Scheduler 就會檢查全部定義完成的 DAG 和定義在其中的做業,若是有符合運行條件的做業,Scheduler 就會發起相應的做業任務以供 Worker 接收。
Flower 提供了一個可視化界面以監控全部 Celery Worker 的運行情況。這個服務並非必要的。
Scheduler、WebServer、Flower: 10.21.0.192
Worker: 10.21.0.190、10.21.0.19一、10.21.0.193
RabbitMQ(Celry broker ): 10.21.0.192
Mysql(backend): 10.21.0.235