预购商品
书目分类
特别推荐
第1章 快速搭建Airflow集群 1 1.1 準備工作 1 1.1.1 安裝kubectl 1 1.1.2 安裝Docker和kind 5 1.1.3 安裝Helm 7 1.2 創建Kubernetes集群 8 1.3 使用Helm部署Airflow集群 8 1.4 運行示例 10 1.5 本章小結 11 第2章 安裝Airflow 12 2.1 在非容器化環境中基於PyPI安裝Airflow 12 2.1.1 準備工作 12 2.1.2 安裝Airflow 13 2.1.3 升級Airflow 14 2.2 在容器化環境中擴展Airflow官方的鏡像 15 2.3 本章小結 15 第3章 部署Airflow集群 16 3.1 在非容器化生產環境中部署Airflow 16 3.1.1 基於Celery Executor的部署 16 3.1.2 基於Dask Executor的部署 23 3.2 在容器化生產環境中部署Airflow 28 3.2.1 基於Celery Executor的部署 28 3.2.2 基於Kubernetes Executor的部署 39 3.2.3 基於CeleryKubernetes Executor的部署 40 3.3 本章小結 41 第4章 DAG相關概念 42 4.1 DAG簡介 42 4.1.1 構造DAG 44 4.1.2 載入DAG 48 4.1.3 運行DAG 49 4.2 Task 50 4.2.1 Task的類型 51 4.2.2 TaskGroup 61 4.2.3 Task的超時處理 63 4.3 DAG Run和Task Instance 63 4.4 本章小結 70 第5章 其他概念 71 5.1 XCom 71 5.1.1 XCom的使用場景 71 5.1.2 如何使用XCom 71 5.2 Variable 73 5.2.1 通過Webserver UI配置Variable 74 5.2.2 通過環境變數配置Variable 75 5.2.3 通過其他方式配置Variable 76 5.3 Connection和Hook 76 5.3.1 基本概念 77 5.3.2 Connection的配置 77 5.3.3 Connection和Hook的使用 80 5.3.4 SSHHook原始程式碼分析 81 5.4 Pool 82 5.4.1 Pool的設置 82 5.4.2 Pool的使用 83 5.5 Priority Weight 84 5.6 Cluster Policy 84 5.6.1 Cluster Policy的使用場景和類型 85 5.6.2 具體示例 85 5.7 Deferrable Operator和Trigger 86 5.7.1 使用Deferrable Operator和Trigger 86 5.7.2 從原始程式碼分析Deferrable Operator和Trigger 87 5.8 本章小結 89 第6章 架構和組件 90 6.1 架構 90 6.2 Scheduler 91 6.2.1 解析DAG文件 91 6.2.2 調度DAG和Task 92 6.2.3 運行Task Instance 94 6.3 Webserver 97 6.3.1 UI 97 6.3.2 REST API 99 6.4 Triggerer 104 6.5 本章小結 104 第7章 系統管理 105 7.1 配置 105 7.1.1 如何管理配置 105 7.1.2 特殊的配置 107 7.1.3 配置的優先順序 108 7.2 安全 108 7.2.1 存取控制 109 7.2.2 API認證 111 7.2.3 Webserver UI安全 113 7.2.4 資料安全 114 7.3 日誌和監控 115 7.3.1 日誌和監控的架構 116 7.3.2 日誌 116 7.3.3 監控 117 7.4 外掛程式 118 7.4.1 外掛程式的安裝和載入 118 7.4.2 如何實現外掛程式 119 7.5 模組管理 126 7.5.1 如何添加Python模組 126 7.5.2 如何排查問題 126 7.6 CLI 127 7.6.1 全部命令 127 7.6.2 自動補齊 129 7.7 時區 130 7.7.1 datetime對象與時區 130 7.7.2 Airflow是如何處理時區的 130 7.7.3 Webserver UI的時區顯示 131 7.8 本章小結 132 第8章 Airflow集群實踐 133 8.1 Executor調優 133 8.1.1 Celery Executor 調優 134 8.1.2 Kubernetes Executor調優 141 8.1.3 Dask Executor調優 141 8.2 高可用 142 8.2.1 高可用的Scheduler 142 8.2.2 高可用的Webserver 143 8.2.3 高可用的Triggerer 143 8.3 魯棒的資料庫訪問 144 8.3.1 PostgreSQL優化 144 8.3.2 MySQL優化 144 8.3.3 資料庫通用優化 144 8.4 簡化DAG檔發佈和解析 145 8.4.1 簡化DAG檔發佈 145 8.4.2 通過配置控制DAG檔解析的行為 145 8.5 用外掛程式擴展集群的能力 146 8.5.1 編寫外掛程式 146 8.5.2 安裝外掛程式 152 8.5.3 測試外掛程式 152 8.6 加強REST API的能力 155 8.7 其他 158 8.7.1 讓集群更安全 158 8.7.2 監控必不可少 159 8.7.3 為DAG和Task添加說明文檔 159 8.7.4 配置郵件通知 160 8.7.5 控制調度的併發度 161 8.8 本章小結 162 第9章 Airflow的新功能 163 9.1 Airflow 2.3版本的新功能 163 9.1.1 動態Task映射 163 9.1.2 網格視圖 169 9.1.3 其他功能 173 9.2 Airflow 2.4版本的新功能 174 9.2.1 資料感知調度 174 9.2.2 其他功能 175 9.3 Airflow 2.5版本的新功能 175 9.4 本章小結 176 第 10章 其他調度系統 177 10.1 DolphinScheduler 177 10.1.1 DolphinScheduler的架構 177 10.1.2 DolphinScheduler的特點和優勢 179 10.1.3 DolphinScheduler與Airflow的對比 180 10.2 AWS Step Functions 180 10.2.1 AWS Step Functions的特點和優勢 181 10.2.2 AWS Step Functions與Airflow的對比 181 10.3 Google Workflows 181 10.3.1 Google Workflows的特點和優勢 182 10.3.2 Google Workflows與Airflow的對比 182 10.4 Azkaban 183 10.4.1 Azkaban的特點和優勢 183 10.4.2 Azkaban與Airflow的對比 184 10.5 Kubeflow 184 10.5.1 Kubeflow的特點和優勢 185 10.5.2 Kubeflow與Airflow的對比 185 10.6 本章小結 186 附錄A Docker簡介 187 附錄B Kubernetes簡介 197
朱鵬程,本科畢業於復旦大學軟體工程系,現于億貝軟體工程(上海)有限公司擔任高級軟體工程師,負責Hadoop平臺的支持和維護,同時負責開源調度系統Airflow在全公司的推廣和落地。精通Java語言,對HBase、Elasticsearch、Airflow等項目有深入瞭解。
客服公告
热门活动
订阅电子报