Flink技术内幕:架构设计与实现原理

Flink技术内幕:架构设计与实现原理

大数据技术丛书

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
0 评价豆瓣读书
¥59.40¥53.46
双11满减折上折截止至:2024-11-14 00:00:00了解详情
双11狂欢购 | 电子书4折满减每满 100 减 60活动详情

作品简介

这是一部从源代码角度出发,通过分析Flink的各个功能模块的实现来剖析Flink的架构设计和实现原理的著作。它将能指导读者更好地对Flink进行性能调优、可用性保障、效能优化和二次开发。

四位作者都是非常资深的Flink专家,部分作者是Flink源代码的维护者和改造者,本书总结了他们在阿里巴巴、蚂蚁集团、滴滴等企业的大规模Flink实践经验。

全书共11章,主要内容如下。

第1章:阅读Flink源代码前的准备

主要介绍了Flink源代码的获取、编译、调试,以及它的目录结构、设计理念和基本架构。此外,还分析了Flink与Hadoop MapReduce、Spark在设计上的差异。

第2~8章:Flink功能模块源代码和架构解析

从源码角度分析了Flink的编程模型与API、运行时组件与通信、状态管理与容错、任务提交与执行、Flink网络栈、Flink Connector、部署模式等功能模块的原理。力求让读者深入理解Flink的原理,而不只是跟着本书读一遍Flink源代码。原理和思想是不局限于某一个框架和技术,了解了Flink的原理和思想,可以将其扩展到其他框架和技术上。

第9~10章:Flink Table、SQL与Flink CEP

编程方式逐渐从原先基于Map-Reduce的任务模式向SQL化演进,SQL意味着标准和效率。这两章重点讲解了StreamTableEnvironment的实现过程、SQL的解析过程、Table Connector以及Flink CEP的内部实现原理。

第11章:Flink监控

主要讲解了Flink的监控指标、常用系统指标和监控体系的建设,以及常用的定位手段。

罗江宇

Flink技术专家,先后就职于新浪微博、滴滴和某大型电商公司。先后主导或参与了多家公司的Flink实时计算服务的构建、对超大规模集群的维护以及Flink引擎的改造。拥有丰富的实时计算实战经验,目前专注于Kubernetes调度、Flink SQL及Flink流批一体化方向。

赵士杰

资深大数据技术专家,曾就职于滴滴、阿里巴巴等一线互联网公司。从0到1深度参与了滴滴的大数据建设,拥有非常丰富的大数据平台一线建设经验,对于大数据领域的计算和存储引擎也有深入研究。

李涵淼

大数据研发专家,曾任滴滴大数据开发工程师。从事大数据领域工作多年,参与过多家公司流计算平台的设计与研发,目前专注于批流一体、OLAP技术方向的研究与应用。

闵文俊

蚂蚁集团技术专家、开源大数据社区爱好者、Flink Contributor,在实时计算领域工作多年,深度参与了滴滴、蚂蚁集团的实时计算平台建设。

作品目录

  1. 内容简介
  2. 作者简介
  3. 推荐语
  4. 前言
  5. 第1章 阅读Flink源代码前的准备
  6. 1.1 环境准备
  7. 1.2 获取、编译和调试Flink的源代码
  8. 1.2.1 获取与导入Flink源代码
  9. 1.2.2 编译与调试Flink源代码
  10. 1.3 Flink源代码的目录结构
  11. 1.4 Flink设计理念与基本架构
  12. 1.4.1 Flink与主流计算引擎对比
  13. 1.4.2 Flink基本架构
  14. 1.5 本章小结
  15. 第2章 编程模型与API
  16. 2.1 DataStream
  17. 2.2 算子
  18. 2.3 窗口
  19. 2.3.1 窗口的基本概念
  20. 2.3.2 窗口的执行流程
  21. 2.3.3 窗口分配器
  22. 2.3.4 触发器
  23. 2.3.5 窗口函数
  24. 2.4 本章小结
  25. 第3章 运行时组件与通信
  26. 3.1 运行时组件
  27. 3.1.1 REST
  28. 3.1.2 Dispatcher
  29. 3.1.3 ResourceManager
  30. 3.1.4 JobMaster
  31. 3.1.5 TaskExecutor
  32. 3.2 组件间通信
  33. 3.2.1 Akka与Actor模型
  34. 3.2.2 组件间通信实现
  35. 3.3 运行时组件的高可用
  36. 3.3.1 Master节点上组件的高可用
  37. 3.3.2 现有运行时组件高可用存在的问题及其解决方案
  38. 3.4 本章小结
  39. 第4章 状态管理与容错
  40. 4.1 状态
  41. 4.1.1 状态的原理与实现
  42. 4.1.2 状态生存时间的原理与实现
  43. 4.2 检查点
  44. 4.2.1 检查点机制原理
  45. 4.2.2 检查点执行过程
  46. 4.2.3 任务容错
  47. 4.3 状态后端
  48. 4.4 本章小结
  49. 第5章 任务提交与执行
  50. 5.1 任务提交整体流程
  51. 5.2 DAG转换
  52. 5.2.1 DAG的4层转换
  53. 5.2.2 WordCount转换过程
  54. 5.3 Slot分配
  55. 5.3.1 相关概念和实现类
  56. 5.3.2 Slot申请流程
  57. 5.3.3 任务部署
  58. 5.4 任务执行机制
  59. 5.4.1 任务执行过程
  60. 5.4.2 MailBox线程模型
  61. 5.5 本章小结
  62. 第6章 Flink网络栈
  63. 6.1 内存管理
  64. 6.2 网络传输
  65. 6.2.1 什么是Flink网络栈
  66. 6.2.2 非流控模型的网络传输流程
  67. 6.2.3 流控模型的网络传输流程
  68. 6.3 流批一体的shuffle架构
  69. 6.3.1 生命周期管理
  70. 6.3.2 数据shuffle
  71. 6.4 本章小结
  72. 第7章 Flink Connector的设计与实现
  73. 7.1 Kafka Connector实现原理
  74. 7.1.1 Kafka Source Connector实现
  75. 7.1.2 Kafka Sink Connector实现
  76. 7.2 HBase Table Connector实现原理
  77. 7.2.1 HBase Source Connector和Sink Connector的工厂实现
  78. 7.2.2 HBase维表实现
  79. 7.3 本章小结
  80. 第8章 部署模式
  81. 8.1 Local部署
  82. 8.2 Standalone部署
  83. 8.3 Flink on YARN模式
  84. 8.3.1 YARN基本架构
  85. 8.3.2 Flink on YARN模式介绍
  86. 8.3.3 Flink on YARN启动过程
  87. 8.4 Flinkon Kubernetes模式
  88. 8.5 本章小结
  89. 第9章 Flink Table与SQL
  90. 9.1 StreamTableEnvironment类介绍
  91. 9.1.1 StreamExecutionEnvironment类
  92. 9.1.2 EnvironmentSettings类
  93. 9.1.3 TableConfig类
  94. 9.1.4 StreamTableEnvironment的创建过程
  95. 9.2 SQL解析过程
  96. 9.2.1 SQL解析
  97. 9.2.2 SQL优化
  98. 9.2.3 RelNode转换
  99. 9.3 Table Connector
  100. 9.3.1 TableSource
  101. 9.3.2 TableSink
  102. 9.3.3 SPI机制在Table Connector中的应用
  103. 9.4 UDF与内置算子
  104. 9.4.1 UDF
  105. 9.4.2 内置算子
  106. 9.5 本章小结
  107. 第10章 Flink CEP原理解析
  108. 10.1 CEP的基本概念
  109. 10.1.1 什么是Flink CEP
  110. 10.1.2 Pattern
  111. 10.1.3 量词
  112. 10.1.4 条件
  113. 10.1.5 连接
  114. 10.1.6 Flink CEP作业编写举例
  115. 10.2 CEP内部实现原理
  116. 10.2.1 NFA简介
  117. 10.2.2 匹配过程
  118. 10.2.3 CEP状态存储
  119. 10.2.4 CEP和SQL结合
  120. 10.3 本章小结
  121. 第11章 Flink监控
  122. 11.1 监控指标
  123. 11.1.1 指标类型
  124. 11.1.2 系统指标及自定义指标
  125. 11.1.3 指标的使用
  126. 11.2 常用系统指标
  127. 11.3 监控体系建设
  128. 11.3.1 指标监控及展示
  129. 11.3.2 日志分析处理
  130. 11.3.3 定位手段
  131. 11.4 本章小结
载入中