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

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

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

定 價(jià):¥129.00

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

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111687832 出版時(shí)間: 2021-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 515 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

前 言
第1章 Flink設(shè)計(jì)理念與基本架構(gòu) 1
1.1 Flink基本設(shè)計(jì)思想 1
1.1.1 Stratosphere系統(tǒng)架構(gòu) 1
1.1.2 DataFlow模型的設(shè)計(jì)思想 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è)計(jì)與實(shí)現(xiàn) 20
2.1 DataStream API的主要組成 20
2.1.1 DataStream API應(yīng)用實(shí)例 20
2.1.2 Transformation詳解 23
2.2 StreamOperator的定義與實(shí)現(xiàn) 25
2.2.1 StreamOperator接口實(shí)現(xiàn) 26
2.2.2 OneInputStreamOperator與TwoInputStreamOperator 31
2.2.3 StreamOperatorFactory詳解 33
2.3 Function的定義與實(shí)現(xiàn) 35
2.3.1 RichFunction詳解 36
2.3.2 SourceFunction與SinkFunction 38
2.3.3 ProcessFunction的定義與實(shí)現(xiàn) 44
2.4 TimerService的設(shè)計(jì)與實(shí)現(xiàn) 47
2.4.1 時(shí)間概念與Watermark 47
2.4.2 TimerService時(shí)間服務(wù) 53
2.5 DataStream核心轉(zhuǎn)換 59
2.5.1 KeyedStream與物理分區(qū) 59
2.5.2 WindowedStream的設(shè)計(jì)與實(shí)現(xiàn) 62
2.6 本章小結(jié) 68
第3章 運(yùn)行時(shí)的核心原理與實(shí)現(xiàn) 69
3.1 運(yùn)行時(shí)的整體架構(gòu) 69
3.1.1 運(yùn)行時(shí)整體架構(gòu)概覽 69
3.1.2 集群的啟動(dòng)與初始化 72
3.2 運(yùn)行時(shí)組件的創(chuàng)建和啟動(dòng) 79
3.2.1 集群組件的創(chuàng)建和啟動(dò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)建與啟動(dòng) 106
3.3 集群資源管理 115
3.3.1 ResourceManager詳解 116
3.3.2 ResourceManagerGateway接口實(shí)現(xiàn) 118
3.3.3 Slot計(jì)算資源管理 119
3.4 系統(tǒng)高可用與容錯(cuò) 130
3.4.1 HighAvailabilityServices的設(shè)計(jì)與實(shí)現(xiàn) 130
3.4.2 基于ZooKeeper實(shí)現(xiàn)高可用 135
3.4.3 JobGraphStore的設(shè)計(jì)與實(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提交到集群運(yùn)行時(shí) 176
4.4 JobGraph的接收與運(yùn)行 178
4.4.1 JobGraph提交整體流程 178
4.4.2 Dispatcher任務(wù)與分發(fā) 180
4.4.3 JobManager啟動(dòng)與初始化 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的啟動(dòng)與注銷 208
4.6.2 AbstractInvokable的加載與初始化 211
4.6.3 StreamTask詳解 212
4.6.4 StreamTask線程模型 216
4.6.5 Task重啟與容錯(cuò)策略 223
4.7 本章小結(jié) 234
第5章 集群部署模式 235
5.1 基本概念 235
5.1.1 ClusterClient的創(chuàng)建與獲取 235
5.1.2 ClusterEntrypoint集群?jiǎn)?dòng)類 241
5.2 Flink On Yarn的設(shè)計(jì)與實(shí)現(xiàn) 245
5.2.1 Yarn架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn) 245
5.2.2 Session集群的部署與啟動(dòng) 247
5.2.3 YarnResourceManager詳解 253
5.3 Flink On Kubernetes的設(shè)計(jì)與實(shí)現(xiàn) 258
5.3.1 Flink On Kubernetes架構(gòu) 259
5.3.2 Session集群的部署與啟動(dòng) 261
5.3.3 KubernetesResourceManager詳解 268
5.4 本章小結(jié) 274
第6章 狀態(tài)管理與容錯(cuò) 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è)計(jì) 285
6.2.2 HeapKeyedStateBackend的實(shí)現(xiàn) 286
6.3 OperatorState的創(chuàng)建與管理 295
6.3.1 OperatorStateBackend的整體設(shè)計(jì) 295
6.3.2 基于DefaultOperatorState-Backend創(chuàng)建OperatorState 296
6.4 StateBackend詳解 299
6.4.1 StateBackend的整體設(shè)計(jì) 299
6.4.2 MemoryStateBackend的實(shí)現(xiàn) 303
6.5 Checkpoint的設(shè)計(jì)與實(shí)現(xiàn) 308
6.5.1 Checkpoint的實(shí)現(xiàn)原理 308
6.5.2 Checkpoint的觸發(fā)過(guò)程 315
6.6 本章小結(jié) 341
第7章 網(wǎng)絡(luò)通信 342
7.1 集群RPC通信機(jī)制 342
7.1.1 Flink RPC框架的整體設(shè)計(jì) 342
7.1.2 AkkaRpcService詳解 347
7.1.3 RpcServer動(dòng)態(tài)代理實(shí)現(xiàn) 357
7.1.4 AkkaRpcActor的設(shè)計(jì)與實(shí)現(xiàn) 360
7.1.5 集群組件之間的RPC通信 363
7.2 NetworkStack的設(shè)計(jì)與實(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è)計(jì)與實(shí)現(xiàn) 424
7.2.7 NetworkBuffer資源管理 449
7.3 基于信用值的反壓機(jī)制實(shí)現(xiàn) 463
7.3.1 反壓機(jī)制理論基礎(chǔ) 463
7.3.2 基于信用值的反壓機(jī)制詳解 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è)計(jì)與實(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 ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)