Flink设计与实现:核心原理与源码解析

Flink设计与实现:核心原理与源码解析

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

这是一本从源代码角度剖析Flink设计思想、架构原理以及各功能模块的底层实现原理的著作。

内容简介

全书共8章:

第1章介绍Flink设计理念与基本架构;

第2章介绍DataStream的设计与实现;

第3章介绍运行时的核心原理与实现,包括Dispatcher、ResourceManager以及JobManager等核心组件的源码级解析和介绍;

第4章介绍Flink任务提交与执行的整体流程,包括客户端实现、运行时作业执行过程、JobGraph及ExecutionGraph图转换等;

第5章介绍不同的集群部署模式,包括On Yarn、On Kubernetes等;

第6章介绍状态管理与容错,包括不同类型状态后端的设计与实现;

第7章介绍Flink网络通信,包括RPC通信以及基于Netty实现的网络栈;

第8章介绍Flink内存管理,包括MemorySegment的设计与实现等。

作者简介

作者张利兵,资深架构师,流式计算领域专家,第四范式华东区AI项目架构师,原明略数据华东区大数据架构师。

有多年大数据、流式计算方面的开发经验,对Hadoop、Spark、Flink等大数据计算引擎有着非常深入的理解,积累了丰富的项目实践经验。先后利用相关技术为银行、证券、地铁等领域的头部企业构建了内部大数据平台,参与了基于Flink的实时反欺诈风控、实时地铁故障预警等流式计算平台的设计和研发。

章节目录

版权信息

前言

为什么要写本书

读者对象

如何阅读本书

勘误和支持

致谢

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

1.1 Flink基本设计思想

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 源码编译

1.3.2 源码调试环境搭建

1.4 本章小结

第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的设计与实现

2.6 本章小结

第3章 运行时的核心原理与实现

3.1 运行时的整体架构

3.1.1 运行时整体架构概览

3.1.2 集群的启动与初始化

3.2 运行时组件的创建和启动

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的设计与实现

3.4.2 基于ZooKeeper实现高可用

3.4.3 JobGraphStore的设计与实现

3.5 本章小结

第4章 任务提交与执行

4.1 客户端作业提交

4.1.1 命令行提交

4.1.2 创建和初始化CLIFrontend

4.1.3 PackagedProgram构造

4.2 ExecutionEnvironment初始化

4.2.1 ExecutionEnvironment类型

4.2.2 StreamExecutionEnvironment详解

4.3 将Pipeline转换成JobGraph

4.3.1 用Transformation生成StreamGraph

4.3.2 将StreamGraph转换为JobGraph

4.3.3 将JobGraph提交到集群运行时

4.4 JobGraph的接收与运行

4.4.1 JobGraph提交整体流程

4.4.2 Dispatcher任务与分发

4.4.3 JobManager启动与初始化

4.4.4 JobMaster详解

4.5 ExecutionGraph的调度与执行

4.5.1 ExecutionGraph生成

4.5.2 SchedulerNG调度器

4.6 Task的执行与注销

4.6.1 Task的启动与注销

4.6.2 AbstractInvokable的加载与初始化

4.6.3 StreamTask详解

4.6.4 StreamTask线程模型

4.6.5 Task重启与容错策略

4.7 本章小结

第5章 集群部署模式

5.1 基本概念

5.1.1 ClusterClient的创建与获取

5.1.2 ClusterEntrypoint集群启动类

5.2 Flink On Yarn的设计与实现

5.2.1 Yarn架构的设计与实现

5.2.2 Session集群的部署与启动

5.2.3 YarnResourceManager详解

5.3 Flink On Kubernetes的设计与实现

5.3.1 Flink On Kubernetes架构

5.3.2 Session集群的部署与启动

5.3.3 KubernetesResourceManager详解

5.4 本章小结

第6章 状态管理与容错

6.1 状态数据管理

6.1.1 状态数据类型

6.1.2 状态初始化流程

6.2 KeyedState的创建与管理

6.2.1 KeyedStateBackend的整体设计

6.2.2 HeapKeyedStateBackend的实现

6.3 OperatorState的创建与管理

6.3.1 OperatorStateBackend的整体设计

6.3.2 基于DefaultOperatorStateBackend创建OperatorState

6.4 StateBackend详解

6.4.1 StateBackend的整体设计

6.4.2 MemoryStateBackend的实现

6.5 Checkpoint的设计与实现

6.5.1 Checkpoint的实现原理

6.5.2 Checkpoint的触发过程

6.6 本章小结

第7章 网络通信

7.1 集群RPC通信机制

7.1.1 Flink RPC框架的整体设计

7.1.2 AkkaRpcService详解

7.1.3 RpcServer动态代理实现

7.1.4 AkkaRpcActor的设计与实现

7.1.5 集群组件之间的RPC通信

7.2 NetworkStack的设计与实现

7.2.1 NetworkStack概览

7.2.2 StreamTask数据流

7.2.3 RecordWriter详解

7.2.4 ShuffleMaster与ShuffleEnvironment

7.2.5 ResultPartition与InputGate详解

7.2.6 ConnectManager的设计与实现

7.2.7 NetworkBuffer资源管理

7.3 基于信用值的反压机制实现

7.3.1 反压机制理论基础

7.3.2 基于信用值的反压机制详解

7.4 本章小结

第8章 内存管理

8.1 内存管理概述

8.1.1 积极的内存管理

8.1.2 Flink内存模型

8.2 MemorySegment的设计与实现

8.2.1 MemorySegment架构概览

8.2.2 MemorySegment详解

8.2.3 MemorySegment内存使用

8.3 DataInputView与DataOutputView

8.3.1 DataInputDeserializer和DataOutputSerializer

8.3.2 DataInputViewStreamWrapper与DataOutputViewStreamWrapper

8.3.3 AbstractPagedInputView与AbstractPagedOutputView

8.4 数据序列化与反序列化

8.4.1 TypeInformation类型系统

8.4.2 RecordSerializer与Recorddeserializer

8.5 本章小结

Flink设计与实现:核心原理与源码解析是2021年由机械工业出版社华章分社出版,作者张利兵。

得书感谢您对《Flink设计与实现:核心原理与源码解析》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
珠宝手绘设计原理与实例解析 电子书
本书系统全面地讲解了珠宝手绘与设计的方法和技巧。全书共8章内容。第1~4章分别讲解了首饰的制作流程及效果图的表现方法、首饰手绘的基础知识、宝石的切割种类与绘制方法、首饰的金属工艺与绘制方法,帮助读者掌握绘画的方法和技巧,理解绘画对设计理念表达的益处;第5~7章通过对手部首饰、头部和颈部首饰及其他饰品的手绘实例的精细解读,向大家完整地展示了珠宝首饰的设计过程:第8章则为系列珠宝设计的手绘实训讲解,希
vBRAS原理、实现与部署 电子书
本书介绍了BRAS的技术背景和传统BRAS的基本原理,从而介绍vBRAS的基本原理和相关关键技术,包括SDN、NFV、云计算使能技术,软、硬件加速技术,以及主要的接口协议和开源控制器。探讨了vBRAS设备实现、主要应用场景以及vBRAS的组网技术和组网模式,最后列举了基于OpenBRAS开源社区的vBRAS开源情况。
深入理解TensorFlow:架构设计与实现原理 电子书
本书以TensorFlow1.2为基础,从基本概念、内部实现和实践等方面深入剖析了TensorFlow。书中首先介绍了TensorFlow设计目标、基本架构、环境准备和基础概念,接着重点介绍了以数据流图为核心的机器学习编程框架的设计原则与核心实现,紧接着还将TensorFlow与深度学习相结合,从理论基础和程序实现这两个方面系统介绍了CNN、GAN和RNN等经典模型,然后深入剖析了TensorFl
操作系统原理与实现 电子书
操作系统是计算机系统的核心,是其他一切软件运行的基础。本书主要介绍操作系统的基本原理和实现方法。全书共12章,包括操作系统概论、进程管理、处理器管理、内存管理、I/O设备管理、磁盘和固态硬盘、文件系统、操作系统安全、分布式操作系统、虚拟机、鸿蒙操作系统、欧拉操作系统等内容。本书以鸿蒙和欧拉等具有代表性的国产操作系统为例,通过对操作系统知识的讲解,帮助学生系统掌握操作系统的基本概念、工作原理、主要功
Flink入门与实战 电子书
深入浅出展现Flink技术精髓,力求详细而完整地描述Flink大数据项目实战,从零开始快速掌握Flink的基本原理和核心功能。