更新时间:2021-08-13 17:27:15
封面
版权信息
前言
第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的整体设计