作 者:羅江宇 等 著
定 價:99
出 版 社:機械工業出版社
出版日期:2022年01月01日
頁 數:340
裝 幀:平裝
ISBN:9787111696292
作者背景資深:4位作者均是Flink的早期實踐者和布道者,不僅參與了國內早期的Flink項目,而且參與Flink源碼的維護和改造。大廠經驗總結:作者在阿裡巴巴、螞蟻集團、滴滴等企業參與和主導了多個Flink項目從0到1的過程,本書是他們在這些企業大規模應用Flink的經驗總結。源碼全面剖析:本書從源碼角度深入剖析了Flink各功能模塊的架構與實現,能指導讀者更好地進行性能調優、可用性保障、效能優化、二次開發
●前言
第1章 閱讀Flink源代碼前的準備
1.1 環境準備
1.2 獲取、編譯和調試Flink的源代碼
1.2.1 獲取與導入Flink源代碼
1.2.2 編譯與調試Flink源代碼
1.3 Flink源代碼的目錄結構
1.4 Flink設計理念與基本架構
1.4.1 Flink與主流計算引擎對比
1.4.2 Flink基本架構
1.5 本章小結
第2章 編程模型與API
2.1 DataStream
2.2 算子
2.3 窗口
2.3.1 窗口的基本概念
2.3.2 窗口的執行流程
2.3.3 窗口分配器
2.3.4 觸發器
2.3.5 窗口函數
2.4 本章小結
第3章 運行時組件與通信
3.1 運行時組件
3.1.1 REST
3.1.2 Dispatcher
3.1.3 ResourceManager
3.1.4 JobMaster
3.1.5 TaskExecutor
3.2 組件間通信
3.2.1 Akka與Actor模型
3.2.2 組件間通信實現
3.3 運行時組件的高可用
3.3.1 Master節點上組件的高可用
3.3.2 現有運行時組件高可用存在的問題及其解決方案
3.4 本章小結
第4章 狀態管理與容錯
4.1 狀態
4.1.1 狀態的原理與實現
4.1.2 狀態生存時間的原理與實現
4.2 檢查點
4.2.1 檢查點機制原理
4.2.2 檢查點執行過程
4.2.3 任務容錯
4.3 狀態後端
4.4 本章小結
第5章 任務提交與執行
5.1 任務提交整體流程
5.2 DAG轉換
5.2.1 DAG的4層轉換
5.2.2 WordCount轉換過程
5.3 Slot分配
5.3.1 相關概念和實現類
5.3.2 Slot申請流程
5.3.3 任務部署
5.4 任務執行機制
5.4.1 任務執行過程
5.4.2 MailBox線程模型
5.5 本章小結
第6章 Flink網絡棧
6.1 內存管理
6.2 網絡傳輸
6.2.1 什麼是Flink網絡棧
6.2.2 非流控模型的網絡傳輸流程
6.2.3 流控模型的網絡傳輸流程
6.3 流批一體的shuffle架構
6.3.1 生命周期管理
6.3.2 數據shuffle
6.4 本章小結
第7章 Flink Connector的設計與實現
7.1 Kafka Connector實現原理
7.1.1 Kafka Source Connector實現
7.1.2 Kafka Sink Connector實現
7.2 HBase Table Connector實現原理
7.2.1 HBase Source Connector和Sink Connector的工廠實現
7.2.2 HBase維表實現
7.3 本章小結
第8章 部署模式
8.1 Local部署
8.2 Standalone部署
8.3 Flink on YARN模式
8.3.1 YARN基本架構
8.3.2 Flink on YARN模式介紹
8.3.3 Flink on YARN啟動過程
8.4 Flinkon Kubernetes模式
8.5 本章小結
第9章 Flink Table與SQL
9.1 StreamTableEnvironment類介紹
9.1.1 StreamExecutionEnvironment類
9.1.2 EnvironmentSettings類
9.1.3 TableConfig類
9.1.4 StreamTableEnvironment的創建過程
9.2 SQL解析過程
9.2.1 SQL解析
9.2.2 SQL優化
9.2.3 RelNode轉換
9.3 Table Connector
9.3.1 TableSource
9.3.2 TableSink
9.3.3 SPI機制在Table Connector中的應用
9.4 UDF與內置算子
9.4.1 UDF
9.4.2 內置算子
9.5 本章小結
第10章 Flink CEP原理解析
10.1 CEP的基本概念
10.1.1 什麼是Flink CEP
10.1.2 Pattern
10.1.3 量詞
10.1.4 條件
10.1.5 連接
10.1.6 Flink CEP作業編寫舉例
10.2 CEP內部實現原理
10.2.1 NFA簡介
10.2.2 匹配過程
10.2.3 CEP狀態存儲
10.2.4 CEP和SQL結合
10.3 本章小結
第11章 Flink監控
11.1 監控指標
11.1.1 指標類型
11.1.2 繫統指標及自定義指標
11.1.3 指標的使用
11.2 常用繫統指標
11.3 監控體繫建設
11.3.1 指標監控及展示
11.3.2 日志分析處理
11.3.3 定位手段
11.4 本章小結
這是一部從源代碼角度出發,通過分析Flink的各個功能模塊的實現來剖析Flink的架構設計和實現原理的著作。它將能指導讀者更好地對Flink進行性能調優、可用性保障、效能優化和二次開發。四位作者都是非常資深的Flink專家,部分作者是Flink源代碼的維護者和改造者,本書總結了他們在阿裡巴巴、螞蟻集團、滴滴等企業的大規模Flink實踐經驗。全書共11章,各章主要內容如下。第1章主要介紹Flink源代碼閱讀環境準備以及Flink的設計理念和基本架構,包括Flink源代碼的導入流程和調試方式,Flink與HadoopMapReduce、Spark的設計差異,以及Flink的分層架構和運行時架構,讓讀者心裡對Flink有個清晰的脈絡。第2~8章展開介紹Flink內部的各個模塊和功能,包括編程模型與API、運行時組件與通信、狀態管理與容錯、任務提交與執行、Flink網絡棧、FlinkConnect等