Airflow 實戰

朱鵬程

  • 出版商: 人民郵電
  • 出版日期: 2023-12-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 207
  • ISBN: 7115623775
  • ISBN-13: 9787115623775
  • 相關分類: DockerKubernetes
  • 立即出貨

  • Airflow 實戰-preview-1
  • Airflow 實戰-preview-2
Airflow 實戰-preview-1

買這商品的人也買了...

商品描述

本書由淺入深地介紹瞭如何快速搭建Airflow集群,包括不同操作系統的快速搭建方法、Airflow的安裝方法、Airflow集群的部署方法、Airflow中的核心概念和其他重要概念、Airflow的架構和組件、Airflow的系統管理、實踐經驗以及其他常見的調度系統。附錄提供了Docker和Kubernetes的簡介。此外,本書還提供了在生產環境中使用Airflow的諸多實踐與經驗,無論是對研發工程師創建工作流、排查工作流問題,還是對運維工程師維護集群運轉、優化集群性能,都有極其重要的借鑒價值。

本書圖文並茂,理論翔實,示例豐富,適合正在使用或者即將使用Airflow作為調度系統的研發工程師、Airflow平臺的運維工程師以及對Airflow感興趣的讀者閱讀。

作者簡介

朱鹏程,本科毕业于复旦大学软件工程系,现于亿贝软件工程(上海)有限公司担任高级软件工程师,负责Hadoop平台的支持和维护,同时负责开源调度系统Airflow在全公司的推广和落地。精通Java语言,对HBase、Elasticsearch、Airflow等项目有深入了解。

目錄大綱

第 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