1 Star 6 Fork 9

zhanglibing / Flink设计与实现-核心原理与源码解析

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

目录

第1章 设计理念与基本架构

1.1 基本设计思想

1.1.1 Stratosphere系统架构

1.1.2 DataFlow模型的设计思想

1.1.3 分布式一致快照算法

1.2 Flink整体架构

1.2.1 架构介绍

1.2.2 Flink集群架构

1.2.3 核心概念介绍

1.3 Flink源码分析与编译

1.3.1 源码编译 23

1.3.2 源码调试环境搭建

第2章 DataStream设计与实现

2.1 DataStream API的主要组成

2.1.1 DataStream API应用实例

2.1.2 Transformation详解

2.2 StreamOperator的定义与实现

2.2.1 StreamOperator接口实现

2.2.2 OneInputStreamOperator与TwoInputStreamOperator

2.2.3 StreamOperatorFactory详解

2.3 Function定义与实现

2.3.1 RichFunction详解

2.3.2 SourceFunction与SinkFunction

2.3.3 ProcessFunction的定义与实现

2.4 TimerService的设计与实现

2.4.1 时间概念与Watermark

2.4.2 TimerService时间服务

2.5 DataStream核心转换

2.5.1 KeyedStream与物理分区

2.5.2 WindowedStream设计与实现

第3章 Runtime核心原理与实现 93

3.1 Runtime整体架构 93

3.1.1 Runtime整体概览

3.1.2 集群启动与初始化

3.2 Runtime组件创建和启动

3.2.1 集群组件创建和启动

3.2.2 WebMonitorEndpoint的创建与初始化

3.2.3 Dispatcher创建与初始化

3.2.4 ResourceManager创建与始化

3.2.5 TaskManager创建与启动

3.3 集群资源管理

3.3.1 ResourceManager详解

3.3.2 ResourceManagerGateway接口实现

3.3.3 Slot计算资源管理

3.4 系统高可用与容错

3.4.1 HighAvailabilityServices的设计与实现 175

3.4.2 基于Zookeeper实现高可用 181

3.4.3 JobGraphStore的设计与实现 190

第4章 任务提交与执行 193

4.1 客户端作业提交 193

4.1.1 命令行提交 193

4.1.2 创建和初始化CLIFrontend 195

4.1.3 PackagedProgram构造 198

4.2 ExecutionEnvironment初始化 202

4.2.1 ExecutionEnvironment类型 202

4.2.2 StreamExecutionEnvironment详解 204

4.3 Pipeline转换成JobGraph 214

4.3.1 Transformations生成Pipeline 215

4.3.2 StreamGraph转换为JobGraph 224

4.3.2 提交JobGraph到集群运行时 233

4.4 JobGraph接收与运行 237

4.4.1 JobGraph提交整体流程 237

4.4.2 Dispatcher任务与分发 239

4.4.3 JobManager启动与初始化 244

4.4.4 JobMaster详解 251

4.5 ExcutionGraph调度与执行 260

4.5.1 ExcutionGraph生成 262

4.5.2 SchedulerNG调度器 265

4.6 Task执行与注销 274

4.6.1 Task启动与注销 276

4.6.2 AbstractInvokable加载与初始化 280

4.6.3 StreamTask详解 282

4.6.4 StreamTask线程模型 287

4.6.5 Task重启与容错策略 298

第5章 集群部署模式 313

5.1 基本概念 313

5.1.1 ClusterClient的创建与获取 313

5.1.2 ClusterEntrypoint集群启动类 319

5.2 Flink On Yarn的设计与实现 324

5.2.1 Yarn架构设计与实现 324

5.2.2 Session集群部署与启动 327

5.2.3 YarnResourceManager详解 335

5.3 Flink On Kubernetes的设计与实现 343

5.3.1 Flink On Kubernetes架构 344

5.3.2 Session集群部署与启动 347

5.3.3 KubernetesResourceManager详解 357

第6章 状态管理与容错 366

6.1 状态数据管理 367

6.1.1 状态数据类型 367

6.1.2 状态初始化流程 371

6.2 KeyedState的创建与管理 381

6.2.1 KeyedStateBackend的整体设计 381

6.2.2 HeapKeyedStateBackend的实现 382

6.3 OperatorState的创建与管理 394

6.3.1 OperatorStateBackend整体设计 395

6.3.2 基于DefaultOperatorStateBackend创建OperatorState 396

6.4 StateBackend详解 400

6.4.1 StateBackend的整体设计 401

6.4.2 MemoryStateBackend实现 407

6.5 Checkpoints的设计与实现 413

6.5.1 Checkpoint的实现原理 414

6.5.2 Checkpoint触发过程 424

第7章 ⽹络通信 464

7.1 集群RPC通信机制 464

7.1.1 Flink RPC框架整体设计 464

7.1.2 AkkaRpcService详解 470

7.1.3 RpcServer动态代理实现 481

7.1.4 AkkaRpcActor设计与实现 487

7.1.5 集群组件之间RPC通信 491

7.2 NetworkStatck设计与实现 503

7.2.1 NetworkStatck整体概览 503

7.2.2 StreamTask数据流 506

7.2.3 RecordWriter详解 521

7.2.4 ShuffleMaster与ShuffleEnvironment 535

7.2.5 ResultPartition与InputGate详解 558

7.2.6 ConnectManager的设计与实现 578

7.2.7 NetworkBuffer资源管理 615

7.3 基于Credit的反压机制实现 635

7.3.1 反压机制理论基础 635

7.3.2 基于Credit的反压机制详解 638

第8章 内存管理 654

8.1 内存管理概述 654

8.1.1 积极的内存管理 654

8.1.2 Flink内存模型 656

8.2 MemorySegment设计与实现 658

8.2.1 MemorySegment架构概览 658

8.2.2 MemorySegment详解 660

8.2.3 MemorySegment内存使用 666

8.3 DataInputView与DataOutputView 670

8.3.1 DataInputDeserializer和DataOutputSerializer 672

8.3.2 DataInputViewStreamWrapper与DataOutputViewStreamWrapper 677

8.3.3 AbstractPagedInputView与AbstractPagedOutputView 679

8.4 数据序列化与反序列化 684

8.4.1 TypeInformation类型系统 684

8.4.2 RecordSerializer与RecordDeserializer 695

欢迎支持个人作品,包含以上全部章节内容:

IMG_4684

京东商城:

https://item.jd.com/12913445.html

当当:

http://product.dangdang.com/29285280.html

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/zhanglibing1990/flink-source-code-book.git
git@gitee.com:zhanglibing1990/flink-source-code-book.git
zhanglibing1990
flink-source-code-book
Flink设计与实现-核心原理与源码解析
master

搜索帮助