![](/c49/99/10042286514728.jpg)
店鋪:機械工業出版社官方旗艦店 出版社:機械工業出版社 ISBN:9787111696292 商品編碼:10042286514728 品牌:機械工業出版社(CMP) 頁數:336 字數:186000 審圖號:9787111696292 作者:羅江宇
"![baecf198635367d9.jpg](https://img10.360buyimg.com/cms/jfs/t1/180445/28/6295/377762/60b0bd82E6c4ef32e/baecf198635367d9.jpg) 內容簡介 內容簡介 這是一部從源代碼角度出發,通過分析Flink的各個功能模塊的實現來剖析Flink的架構設計和實現原理的著作。它將能指導讀者更好地對Flink進行性能調優、可用性保障、效能優化和二次開發。 四位作者都是非常*深的Flink專家,部分作者是Flink源代碼的維護者和改造者,本書總結了他們在阿裡巴巴、螞蟻集團、滴滴等企業的大規模Flink實踐經驗。 全書共11章,主要內容如下。 *1章 閱讀Flink源代碼前的準備 主要介紹了Flink源代碼的獲取、編譯、調試,以及它的目錄結構、設計理念和基本架構。此外,還分析了Flink與Hadoop MapReduce、Spark在設計上的差異。 *2~8章 Flink功能模塊源代碼和架構解析 從源碼角度分析了Flink的編程模型與API、運行時組件與通信、狀態管理與容錯、任務提交與執行、Flink網絡棧、Flink Connector、部署模式等功能模塊的原理。力求讓讀者深入理解Flink的原理,而不隻是跟著本書讀一遍Flink源代碼。原理和思想是不局限於某一個框架和技術,了解了Flink的原理和思想,可以將其擴展到其他框架和技術上。 第9~10章 Flink Table、SQL與Flink CEP 編程方式逐漸從原先基於Map-Reduce的任務模式向SQL化演進,SQL意味著標準和效率。這兩章重點講解了StreamTableEnvironment的實現過程、SQL的解析過程、Table Connector以及Flink CEP的內部實現原理。 *11章 Flink監控 主要講解了Flink的監控指標、常用繫統指標和監控體繫的建設,以及常用的定位手段。 目錄 前 言 *1章 閱讀Flink源代碼前的準備 1 1.1 環境準備 1 1.2 獲取、編譯和調試Flink的源代碼 4 1.2.1 獲取與導入Flink源代碼 4 1.2.2 編譯與調試Flink源代碼 6 1.3 Flink源代碼的目錄結構 9 1.4 Flink設計理念與基本架構 11 1.4.1 Flink與主流計算引擎對比 11 1.4.2 Flink基本架構 14 1.5 本章小結 17 *2章 編程模型與API 18 2.1 DataStream 18 2.2 算子 21 2.3 窗口 28 2.3.1 窗口的基本概念 28 2.3.2 窗口的執行流程 30 2.3.3 窗口分配器 32 2.3.4 觸發器 37 2.3.5 窗口函數 41 2.4 本章小結 43 第3章 運行時組件與通信 44 3.1 運行時組件 44 3.1.1 REST 45 3.1.2 Dispatcher 54 3.1.3 ResourceManager 61 3.1.4 JobMaster 75 3.1.5 TaskExecutor 85 3.2 組件間通信 95 3.2.1 Akka與Actor模型 95 3.2.2 組件間通信實現 99 3.3 運行時組件的高可用 117 3.3.1 Master節點上組件的高可用 117 3.3.2 現有運行時組件高可用存在的問題及其解決方案 126 3.4 本章小結 128 第4章 狀態管理與容錯 129 4.1 狀態 129 4.1.1 狀態的原理與實現 129 4.1.2 狀態生存時間的原理與實現 134 4.2 檢查點 137 4.2.1 檢查點機制原理 137 4.2.2 檢查點執行過程 137 4.2.3 任務容錯 140 4.3 狀態後端 143 4.4 本章小結 148 第5章 任務提交與執行 149 5.1 任務提交整體流程 149 5.2 DAG轉換 152 5.2.1 DAG的4層轉換 152 5.2.2 WordCount轉換過程 152 5.3 Slot分配 160 5.3.1 相關概念和實現類 160 5.3.2 Slot申請流程 162 5.3.3 任務部署 168 5.4 任務執行機制 170 5.4.1 任務執行過程 170 5.4.2 MailBox線程模型 174 5.5 本章小結 177 第6章 Flink網絡棧 178 6.1 內存管理 178 6.2 網絡傳輸 182 6.2.1 什麼是Flink網絡棧 182 6.2.2 非流控模型的網絡傳輸流程 184 6.2.3 流控模型的網絡傳輸流程 197 6.3 流批一體的shuffle架構 199 6.3.1 生命周期管理 199 6.3.2 數據shuffle 207 6.4 本章小結 208 第7章 Flink Connector的設計與實現 209 7.1 Kafka Connector實現原理 209 7.1.1 Kafka Source Connector實現 209 7.1.2 Kafka Sink Connector 實現 216 7.2 HBase Table Connector 實現原理 220 7.2.1 HBase Source Connector和Sink Connector的工廠實現 221 7.2.2 HBase維表實現 222 7.3 本章小結 224 第8章 部署模式 225 8.1 Local部署 225 8.2 Standalone部署 228 8.3 Flink on YARN模式 240 8.3.1 YARN基本架構 240 8.3.2 Flink on YARN模式介紹 241 8.3.3 Flink on YARN啟動過程 243 8.4 Flinkon Kubernetes模式 260 8.5 本章小結 265 第9章 Flink Table與SQL 266 9.1 StreamTableEnvironment類介紹 266 9.1.1 StreamExecution-Environment類 267 9.1.2 EnvironmentSettings類 267 9.1.3 TableConfig類 268 9.1.4 StreamTableEnvironment的創建過程 269 9.2 SQL解析過程 270 9.2.1 SQL解析 270 9.2.2 SQL優化 277 9.2.3 RelNode轉換 279 9.3 Table Connector 281 9.3.1 TableSource 282 9.3.2 TableSink 286 9.3.3 SPI機制在Table Connector中的應用 288 9.4 UDF與內置算子 292 9.4.1 UDF 292 9.4.2 內置算子 294 9.5 本章小結 297 *10章 Flink CEP 原理解析 298 10.1 CEP的基本概念 298 10.1.1 什麼是Flink CEP 298 10.1.2 Pattern 298 10.1.3 量詞 300 10.1.4 條件 301 10.1.5 連接 302 10.1.6 Flink CEP作業編寫舉例 302 10.2 CEP內部實現原理 304 10.2.1 NFA簡介 305 10.2.2 匹配過程 305 10.2.3 CEP狀態存儲 310 10.2.4 CEP和SQL結合 313 10.3 本章小結 315 *11章 Flink監控 316 11.1 監控指標 316 11.1.1 指標類型 316 11.1.2 繫統指標及自定義指標 318 11.1.3 指標的使用 319 11.2 常用繫統指標 322 11.3 監控體繫建設 324 11.3.1 指標監控及展示 324 11.3.2 日志分析處理 326 11.3.3 定位手段 326 11.4 本章小結 327
" |