预购商品
书目分类
特别推荐
這是一部從原始程式碼角度出發,通過分析Flink的各個功能模組的實現來剖析Flink的架構設計和實現原理的著作。它將能指導讀者更好地對Flink進行性能調優、可用性保障、效能優化和二次開發。 四位元作者都是非常資深的Flink專家,部分作者是Flink原始程式碼的維護者和改造者,本書總結了他們在阿裡巴巴、螞蟻集團、滴滴等企業的大規模Flink實踐經驗。 全書共11章,主要內容如下。 第1章閱讀Flink原始程式碼前的準備 主要介紹了Flink原始程式碼的獲取、編譯、調試,以及它的目錄結構、設計理念和基本架構。此外,還分析了Flink與HadoopMapReduce、Spark在設計上的差異。 第2~8章Flink功能模組原始程式碼和架構解析 從源碼角度分析了Flink的程式設計模型與API、運行時元件與通信、狀態管理與容錯、任務提交與執行、Flink網路棧、FlinkConnector、部署模式等功能模組的原理。力求讓讀者深入理解Flink的原理,而不只是跟著本書讀一遍Flink原始程式碼。原理和思想是不局限於某一個框架和技術,瞭解了Flink的原理和思想,可以將其擴展到其他框架和技術上。 第9~10章FlinkTable、SQL與FlinkCEP程式設計方式逐漸從原先基於Map-Reduce的任務模式向SQL化演進,SQL意味著標準和效率。這兩章重點講解了StreamTableEnvironment的實現過程、SQL的解析過程、TableConnector以及FlinkCEP的內部實現原理。 第11章Flink監控主要講解了Flink的監控指標、常用系統指標和監控體系的建設,以及常用的定位手段。
第1章閱讀Flink原始程式碼前的準備 1 1.1環境準備 1 1.2獲取、編譯和調試Flink的原始程式碼 4 1.2.1獲取與導入Flink原始程式碼 4 1.2.2編譯與調試Flink原始程式碼 6 1.3Flink原始程式碼的目錄結構 9 1.4Flink設計理念與基本架構 11 1.4.1Flink與主流計算引擎對比 11 1.4.2Flink基本架構 14 1.5本章小結 17 第2章程式設計模型與API 18 2.1DataStream 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.1REST 45 3.1.2Dispatcher 54 3.1.3ResourceManager 61 3.1.4JobMaster 75 3.1.5TaskExecutor 85 3.2組件間通信 95 3.2.1Akka與Actor模型 95 3.2.2組件間通信實現 99 3.3運行時組件的高可用 117 3.3.1Master節點上組件的高可用 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.2DAG轉換 152 5.2.1DAG的4層轉換 152 5.2.2WordCount轉換過程 152 5.3Slot分配 160 5.3.1相關概念和實現類 160 5.3.2Slot申請流程 162 5.3.3任務部署 168 5.4任務執行機制 170 5.4.1任務執行過程 170 5.4.2MailBox執行緒模型 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.1Kafka Connector實現原理 209 7.1.1Kafka Source Connector實現 20 7.1.2Kafka Sink Connector 實現 216 7.2HBase Table Connector 實現原理 220 7.2.1HBase Source Connector和Sink Connector的工廠實現 221 7.2.2HBase維表實現 222 7.3本章小結 224 第8章部署模式 225 8.1Local部署 225 8.2Standalone部署 228 8.3Flink on YARN模式 240 8.3.1YARN基本架構 240 8.3.2Flink on YARN模式介紹 241 8.3.3Flink on YARN啟動過程 243 8.4Flinkon Kubernetes模式 260 8.5本章小結 265 第9章Flink Table與SQL 266 9.1StreamTableEnvironment類介紹 266 9.1.1StreamExecution-Environment類 267 9.1.2EnvironmentSettings類 267 9.1.3TableConfig類 268 9.1.4StreamTableEnvironment的創建過程 269 9.2SQL解析過程 270 9.2.1SQL解析 270 9.2.2SQL優化 277 9.2.3RelNode轉換 279 9.3Table Connector 281 9.3.1TableSource 282 9.3.2TableSink 286 9.3.3SPI機制在Table Connector中的應用 288 9.4UDF與內置運算元 292 9.4.1UDF 292 9.4.2內置運算元 294 9.5本章小結 297 第10章Flink CEP 原理解析 298 10.1CEP的基本概念 298 10.1.1什麼是Flink CEP 298 10.1.2Pattern 298 10.1.3量詞 300 10.1.4條件 301 10.1.5連接 302 10.1.6Flink CEP作業編寫舉例 302 10.2CEP內部實現原理 304 10.2.1NFA簡介 305 10.2.2匹配過程 305 10.2.3CEP狀態存儲 310 10.2.4CEP和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
客服公告
热门活动
订阅电子报