注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Flink設(shè)計與實現(xiàn):核心原理與源碼解析

Flink設(shè)計與實現(xiàn):核心原理與源碼解析

Flink設(shè)計與實現(xiàn):核心原理與源碼解析

定 價:¥129.00

作 者: 張利兵 著
出版社: 機械工業(yè)出版社
叢編項: 大數(shù)據(jù)技術(shù)叢書
標 簽: 暫缺

ISBN: 9787111687832 出版時間: 2021-09-01 包裝: 平裝
開本: 16開 頁數(shù): 515 字數(shù):  

內(nèi)容簡介

  這是一本從源代碼角度剖析Flink設(shè)計思想、架構(gòu)原理以及各功能模塊的底層實現(xiàn)原理的著作。 作者是Flink領(lǐng)域的資深技術(shù)專家和架構(gòu)師,對Flink的源代碼進行了深入分析和解讀,同時融入了自己豐富的工程實踐經(jīng)驗,既能讓理解Flink的設(shè)計與實現(xiàn)原理,又能為他們解決性能優(yōu)化等實際應(yīng)用問題提供源碼級別的指導(dǎo)。源碼大多艱澀難懂,為了降低讀者的學(xué)習(xí)門檻,本書提供了大量架構(gòu)設(shè)計圖、UML圖和代碼注釋。 通過閱讀本書,你將: l徹底掌握Flink源碼設(shè)計與實現(xiàn) l深度掌握Flink作業(yè)運行流程 l深入了解Flink部署模式實現(xiàn)原理 l深度掌握Flink Runtime設(shè)計和實現(xiàn)原理 l庖丁解牛Flink網(wǎng)絡(luò)通信原理 l探索Flink內(nèi)存管理實現(xiàn) l深入了解Flink接口設(shè)計 l從Flink源碼中學(xué)習(xí)架構(gòu)設(shè)計經(jīng)驗

作者簡介

  張利兵 資深大數(shù)據(jù)專家和架構(gòu)師,現(xiàn)任第四范式AI數(shù)據(jù)平臺架構(gòu)師,曾就職于明略數(shù)據(jù)。Apache Flink的貢獻者,對Flink有非常深入的研究。 長期從事大數(shù)據(jù)架構(gòu)落地以及機器學(xué)習(xí)平臺與數(shù)據(jù)平臺研發(fā)架構(gòu)工作,在Hadoop、Spark、機器學(xué)習(xí)等方面積累了豐富的經(jīng)驗。先后參與和主導(dǎo)了銀行、證券、地鐵等領(lǐng)域的大數(shù)據(jù)平臺的架構(gòu)設(shè)計與實現(xiàn)。 《Flink原理、實戰(zhàn)與性能優(yōu)化》作者,極客時間《Flink原理與實戰(zhàn)》專欄作者。獲得Cloudera CCAH認證、Cloudera SEBC認證以及Cloudera認證,擁有非常豐富的寫作和授課經(jīng)驗。

圖書目錄

前 言
第1章 Flink設(shè)計理念與基本架構(gòu) 1
1.1 Flink基本設(shè)計思想 1
1.1.1 Stratosphere系統(tǒng)架構(gòu) 1
1.1.2 DataFlow模型的設(shè)計思想 3
1.1.3 分布式異步快照算法 6
1.2 Flink整體架構(gòu) 9
1.2.1 架構(gòu)介紹 9
1.2.2 Flink集群架構(gòu) 11
1.2.3 核心概念 12
1.3 Flink源碼分析與編譯 14
1.3.1 源碼編譯 14
1.3.2 源碼調(diào)試環(huán)境搭建 15
1.4 本章小結(jié) 19
第2章 DataStream的設(shè)計與實現(xiàn) 20
2.1 DataStream API的主要組成 20
2.1.1 DataStream API應(yīng)用實例 20
2.1.2 Transformation詳解 23
2.2 StreamOperator的定義與實現(xiàn) 25
2.2.1 StreamOperator接口實現(xiàn) 26
2.2.2 OneInputStreamOperator與TwoInputStreamOperator 31
2.2.3 StreamOperatorFactory詳解 33
2.3 Function的定義與實現(xiàn) 35
2.3.1 RichFunction詳解 36
2.3.2 SourceFunction與SinkFunction 38
2.3.3 ProcessFunction的定義與實現(xiàn) 44
2.4 TimerService的設(shè)計與實現(xiàn) 47
2.4.1 時間概念與Watermark 47
2.4.2 TimerService時間服務(wù) 53
2.5 DataStream核心轉(zhuǎn)換 59
2.5.1 KeyedStream與物理分區(qū) 59
2.5.2 WindowedStream的設(shè)計與實現(xiàn) 62
2.6 本章小結(jié) 68
第3章 運行時的核心原理與實現(xiàn) 69
3.1 運行時的整體架構(gòu) 69
3.1.1 運行時整體架構(gòu)概覽 69
3.1.2 集群的啟動與初始化 72
3.2 運行時組件的創(chuàng)建和啟動 79
3.2.1 集群組件的創(chuàng)建和啟動 79
3.2.2 WebMonitorEndpoint的創(chuàng)建與初始化 85
3.2.3 Dispatcher的創(chuàng)建與初始化 91
3.2.4 ResourceManager的創(chuàng)建與初始化 98
3.2.5 TaskManager的創(chuàng)建與啟動 106
3.3 集群資源管理 115
3.3.1 ResourceManager詳解 116
3.3.2 ResourceManagerGateway接口實現(xiàn) 118
3.3.3 Slot計算資源管理 119
3.4 系統(tǒng)高可用與容錯 130
3.4.1 HighAvailabilityServices的設(shè)計與實現(xiàn) 130
3.4.2 基于ZooKeeper實現(xiàn)高可用 135
3.4.3 JobGraphStore的設(shè)計與實現(xiàn) 141
3.5 本章小結(jié) 144
第4章 任務(wù)提交與執(zhí)行 145
4.1 客戶端作業(yè)提交 145
4.1.1 命令行提交 145
4.1.2 創(chuàng)建和初始化CLIFrontend 148
4.1.3 PackagedProgram構(gòu)造 150
4.2 ExecutionEnvironment初始化 152
4.2.1 ExecutionEnvironment類型 152
4.2.2 StreamExecutionEnvironment詳解 154
4.3 將Pipeline轉(zhuǎn)換成JobGraph 161
4.3.1 用Transformation生成StreamGraph 162
4.3.2 將StreamGraph轉(zhuǎn)換為JobGraph 169
4.3.3 將JobGraph提交到集群運行時 176
4.4 JobGraph的接收與運行 178
4.4.1 JobGraph提交整體流程 178
4.4.2 Dispatcher任務(wù)與分發(fā) 180
4.4.3 JobManager啟動與初始化 184
4.4.4 JobMaster詳解 188
4.5 ExecutionGraph的調(diào)度與執(zhí)行 195
4.5.1 ExecutionGraph生成 198
4.5.2 SchedulerNG調(diào)度器 200
4.6 Task的執(zhí)行與注銷 206
4.6.1 Task的啟動與注銷 208
4.6.2 AbstractInvokable的加載與初始化 211
4.6.3 StreamTask詳解 212
4.6.4 StreamTask線程模型 216
4.6.5 Task重啟與容錯策略 223
4.7 本章小結(jié) 234
第5章 集群部署模式 235
5.1 基本概念 235
5.1.1 ClusterClient的創(chuàng)建與獲取 235
5.1.2 ClusterEntrypoint集群啟動類 241
5.2 Flink On Yarn的設(shè)計與實現(xiàn) 245
5.2.1 Yarn架構(gòu)的設(shè)計與實現(xiàn) 245
5.2.2 Session集群的部署與啟動 247
5.2.3 YarnResourceManager詳解 253
5.3 Flink On Kubernetes的設(shè)計與實現(xiàn) 258
5.3.1 Flink On Kubernetes架構(gòu) 259
5.3.2 Session集群的部署與啟動 261
5.3.3 KubernetesResourceManager詳解 268
5.4 本章小結(jié) 274
第6章 狀態(tài)管理與容錯 275
6.1 狀態(tài)數(shù)據(jù)管理 275
6.1.1 狀態(tài)數(shù)據(jù)類型 275
6.1.2 狀態(tài)初始化流程 279
6.2 KeyedState的創(chuàng)建與管理 285
6.2.1 KeyedStateBackend的整體設(shè)計 285
6.2.2 HeapKeyedStateBackend的實現(xiàn) 286
6.3 OperatorState的創(chuàng)建與管理 295
6.3.1 OperatorStateBackend的整體設(shè)計 295
6.3.2 基于DefaultOperatorState-Backend創(chuàng)建OperatorState 296
6.4 StateBackend詳解 299
6.4.1 StateBackend的整體設(shè)計 299
6.4.2 MemoryStateBackend的實現(xiàn) 303
6.5 Checkpoint的設(shè)計與實現(xiàn) 308
6.5.1 Checkpoint的實現(xiàn)原理 308
6.5.2 Checkpoint的觸發(fā)過程 315
6.6 本章小結(jié) 341
第7章 網(wǎng)絡(luò)通信 342
7.1 集群RPC通信機制 342
7.1.1 Flink RPC框架的整體設(shè)計 342
7.1.2 AkkaRpcService詳解 347
7.1.3 RpcServer動態(tài)代理實現(xiàn) 357
7.1.4 AkkaRpcActor的設(shè)計與實現(xiàn) 360
7.1.5 集群組件之間的RPC通信 363
7.2 NetworkStack的設(shè)計與實現(xiàn) 371
7.2.1 NetworkStack概覽 371
7.2.2 StreamTask數(shù)據(jù)流 374
7.2.3 RecordWriter詳解 384
7.2.4 ShuffleMaster與Shuffle-Environment 394
7.2.5 ResultPartition與InputGate詳解 410
7.2.6 ConnectManager的設(shè)計與實現(xiàn) 424
7.2.7 NetworkBuffer資源管理 449
7.3 基于信用值的反壓機制實現(xiàn) 463
7.3.1 反壓機制理論基礎(chǔ) 463
7.3.2 基于信用值的反壓機制詳解 466
7.4 本章小結(jié) 475
第8章 內(nèi)存管理 476
8.1 內(nèi)存管理概述 476
8.1.1 積極的內(nèi)存管理 476
8.1.2 Flink內(nèi)存模型 478
8.2 MemorySegment的設(shè)計與實現(xiàn) 479
8.2.1 MemorySegment架構(gòu)概覽 480
8.2.2 MemorySegment詳解 481
8.2.3 MemorySegment內(nèi)存使用 486
8.3 DataInputView與DataOutputView 489
8.3.1 DataInputDeserializer和DataOutputSerializer 491
8.3.2 DataInputViewStreamWrapper與DataOutputViewStreamWrapper 494
8.3.3 AbstractPagedInputView與AbstractPagedOutputView 495
8.4 數(shù)據(jù)序列化與反序列化 501
8.4.1 TypeInformation類型系統(tǒng) 501
8.4.2 RecordSerializer與RecordDeserializer 508
8.5 本章小結(jié) 515

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號