Flink内核原理与实现
¥
35.7
3.0折
¥
119
八五品
仅1件
作者冯飞,崔鹏云,陈冠华 著
出版社机械工业出版社
ISBN9787111661894
出版时间2020-09
版次1
装帧平装
开本16开
纸张胶版纸
页数328页
定价119元
货号9787111661894
上书时间2024-11-27
商品详情
- 品相描述:八五品
- 商品描述
-
基本信息
书名:Flink内核原理与实现
定价:119.00元
作者:冯飞,崔鹏云,陈冠华 著
出版社:机械工业出版社
出版日期:2020-09-01
ISBN:9787111661894
字数:
页码:328
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐
1. 作者团队:近10位行业专家联袂推荐,带你参透Flink的内核原理。2. 内容全面详实:从Flink的基本思想、原理到其后期的技术实现与管理。3. 读者覆盖面广:从大数据开发、架构人员到性能优化运维工程师。
内容提要
《Flink内核原理与实现》既讲解了Flink的入门、安装、流计算开发入门、类型和序列化系统、监控运维、安全管理配置等基础知识,又讲解了Flink的时间概念、Window的实现原理及其代码解析,Flink的容错机制原理,Flink容错的关键设计、代码实现分析,Flink Job从源码到执行整个过程的解析,Flink Job的调度策略、资源管理策略、内存管理、数据交换的关键设计和代码实现分析,Flink的RPC通信框架等深度内容。《Flink内核原理与实现》适合对实时计算感兴趣的大数据开发、运维领域的从业人员阅读,此外对机器学习工程技术人员也有所帮助。
目录
前言章 Flink入门1.1 核心特点 1.1.1 批流一体 1.1.2 可靠的容错能力 1.1.3 高吞吐、低延迟 1.1.4 大规模复杂计算 1.1.5 多平台部署1.2 架构 1.2.1 技术架构 1.2.2 运行架构1.3 Flink的未来1.4 准备工作1.5 总结第2章 Flink应用2.1 Flink应用开发2.2 API层次2.3 数据流2.4 数据流API 2.4.1 数据读取 2.4.2 处理数据 2.4.3 数据写出 2.4.4 旁路输出2.5 总结第3章 核心抽象3.1 环境对象 3.1.1 执行环境 3.1.2 运行时环境 3.1.3 运行时上下文3.2 数据流元素3.3 数据转换3.4 算子 3.4.1 算子行为 3.4.2 Flink算子 3.4.3 Blink算子 3.4.4 异步算子3.5 函数体系 3.5.1 函数层次 3.5.2 处理函数 3.5.3 广播函数 3.5.4 异步函数 3.5.5 数据源函数 3.5.6 输出函数 3.5.7 检查点函数3.6 数据分区3.7 连接器3.8 分布式ID3.9 总结第4章 时间与窗口4.1 时间类型4.2 窗口类型4.3 窗口原理与机制 4.3.1 WindowAssigner 4.3.2 WindowTrigger 4.3.3 WindowEvictor 4.3.4 Window函数4.4 水印 4.4.1 DataStream Watermark生成 4.4.2 Flink SQL Watermark生成 4.4.3 多流的Watermark4.5 时间服务 4.5.1 定时器服务 4.5.2 定时器 4.5.3 优先级队列4.6 窗口实现 4.6.1 时间窗口 4.6.2 会话窗口 4.6.3 计数窗口4.7 总结第5章 类型与序列化5.1 DataStream类型系统 5.1.1 物理类型 5.1.2 逻辑类型 5.1.3 类型推断 5.1.4 显式类型 5.1.5 类型系统存在的问题5.2 SQL类型系统 5.2.1 Flink Row 5.2.2 Blink Row 5.2.3 ColumnarRow5.3 数据序列化 5.3.1 数据序列化/反序列化 5.3.2 String序列化过程示例 5.3.3 作业序列化 5.3.4 Kryo序列化5.4 总结第6章 内存管理6.1 自主内存管理6.2 内存模型 6.2.1 内存布局 6.2.2 内存计算6.3 内存数据结构 6.3.1 内存段 6.3.2 内存页 6.3.3 Buffer 6.3.4 Buffer资源池6.4 内存管理器 6.4.1 内存申请 6.4.2 内存释放6.5 网络缓冲器 6.5.1 内存申请 6.5.2 内存回收6.6 总结第7章 状态原理7.1 状态类型 7.1.1 KeyedState与OperatorState 7.1.2 原始和托管状态7.2 状态描述7.3 广播状态7.4 状态接口 7.4.1 状态操作接口 7.4.2 状态访问接口7.5 状态存储 7.5.1 内存型和文件型状态存储 7.5.2 基于RocksDB的StateBackend7.6 状态持久化7.7 状态重分布 7.7.1 OperatorState重分布 7.7.2 KeyedState重分布7.8 状态过期 7.8.1 DataStream中状态过期 7.8.2 Flink SQL中状态过期 7.8.3 状态过期清理7.9 总结第8章 作业提交8.1 提交流程 8.1.1 流水线执行器PipelineExecutor 8.1.2 YarSession提交流程 8.1.3 YarPer-Job提交流程 8.1.4 K8s Session提交流程8.2 Graph总览8.3 流图 8.3.1 StreamGraph核心对象 8.3.2 StreamGraph生成过程 8.3.3 单输入物理Transformation的转换示例 8.3.4 虚拟Transformation的转换示例8.4 作业图 8.4.1 JobGraph核心对象 8.4.2 JobGraph生成过程 8.4.3 算子融合8.5 执行图 8.5.1 ExecutionGraph核心对象 8.5.2 ExecutionGraph生成过程8.6 总结第9章 资源管理9.1 资源抽象9.2 资源管理器9.3 Slot管理器9.4 SlotProvider9.5 Slot选择策略9.6 Slot资源池9.7 Slot共享9.8 总结0章 作业调度10.1 调度10.2 执行模式10.3 数据交换模式10.4 作业生命周期 10.4.1 作业生命周期状态 10.4.2 Task的生命周期10.5 关键组件 10.5.1 JobMaster 10.5.2 TaskManager 10.5.3 Task 10.5.4 StreamTask10.6 作业启动 10.6.1 JobMaster启动作业 10.6.2 流作业启动调度 10.6.3 批作业调度 10.6.4 TaskManger启动Task10.7 作业停止10.8 作业失败调度 10.8.1 默认作业失败调度 10.8.2 遗留的作业失败调度10.9 组件容错 10.9.1 容错设计 10.9.2 HA服务 10.9.3 JobMaster的容错 10.9.4 ResourceManager容错 10.9.5 TaskManager 的容错10.10 总结1章 作业执行11.1 作业执行图11.2 核心对象 11.2.1 输入处理器 11.2.2 Task输入 11.2.3 Task输出 11.2.4 结果分区 11.2.5 结果子分区 11.2.6 有限数据集 11.2.7 输入网关 11.2.8 输入通道11.3 Task执行 11.3.1 Task处理数据 11.3.2 Task处理Watermark 11.3.3 Task处理StreamStatus 11.3.4 Task处理LatencyMarker11.4 总结2章 数据交换12.1 数据传递模式12.2 关键组件 12.2.1 RecordWriter 12.2.2 数据记录序列化器 12.2.3 数据记录反序列化器 12.2.4 结果子分区视图 12.2.5 数据输出12.3 数据传递 12.3.1 本地线程内的数据传递 12.3.2 本地线程间的数据传递 12.3.3 跨网络的数据传递12.4 数据传递过程 12.4.1 数据读取 12.4.2 数据写出 12.4.3 数据清理12.5 网络通信 12.5.1 网络连接 12.5.2 无流控 12.5.3 基于信用的流控12.6 总结3章 应用容错13.1 容错保证语义13.2 检查点与保存点13.3 作业恢复 13.3.1 检查点恢复 13.3.2 保存点恢复 13.3.3 恢复时的时间问题13.4 关键组件 13.4.1 检查点协调器 13.4.2 检查点消息13.5 轻量级异步分布式快照 13.5.1 基本概念 13.5.2 Barrier对齐13.6 检查点执行过程 13.6.1 JobMaster触发检查点 13.6.2 TaskExecutor执行检查点 13.6.3 JobMaster确认检查点13.7 检查点恢复过程13.8 端到端严格一次 13.8.1 两阶段提交协议 13.8.2 两阶段提交实现13.9 总结4章 Flink SQL14.1 Apache Calcite 14.1.1 Calcite是什么 14.1.2 Calcite的技术特点 14.1.3 Calcite的主要功能 14.1.4 Calcite的核心原理14.2 动态表 14.2.1 流映射为表 14.2.2 连续查询 14.2.3 流上SQL查询限制 14.2.4 表到流的转换14.3 TableEnvironment 14.3.1 TableEnvironment体系 14.3.2 TableEnvironment使用示例14.4 Table API14.5 SQL API14.6 元数据 14.6.1 元数据管理 14.6.2 元数据分类14.7数据访问 14.7.1Table Source 14.7.2Table Slink14.8 SQL函数14.9 Planner关键抽象 14.9.1 Expression 14.9.2 ExpressionResolver 14.9.3 Operation 14.9.4 QueryOperation 14.9.5 物理计划节点14.10 Blink Planner和Flink Planner对比14.11 Blink与Calcite关系14.12 Blink SQL执行过程 14.12.1 从SQL到Operation 14.12.2 Operation到Transformation14.13 Blink Table API执行过程 14.13.1 Table API到Operation 14.13.2 Operation到Transformation14.14 Flink与Calcite的关系14.15 Flink SQL执行过程 14.15.1 SQL 到Operation 14.15.2 Operation到DataStream/DataSet14.16 Flink Table API执行过程14.17 SQL优化14.18 Blink优化 14.18.1 优化器 14.18.2 代价计算 14.18.3 优化过程 14.18.4 优化规则 14.18.5 公共子图14.19 Flink优化 14.19.1 优化器 14.19.2 优化过程 14.19.3 优化规则14.20 代码生成 14.20.1 为什么进行代码生成 14.20.2 代码生成范围 14.20.3 代码生成示例14.21 总结5章 运维监控15.1 监控指标15.2 指标组15.3 监控集成15.4 指标注册中心15.5 指标查询服务15.6 延迟跟踪实现原理15.7 总结6章 RPC框架16.1 Akka简介 16.1.1 Akka是什么 16.1.2 使用Akka 16.1.3 Akka的通信16.2 RPC消息的类型16.3 RPC通信组件 16.3.1 RpcGateway 16.3.2 RpcEndpoint 16.3.3 RpcService 16.3.4 RpcServer 16.3.5 AkkaRpcActor16.4 RPC交互过程 16.4.1 RPC请求发送 16.4.2 RPC请求响应16.5总结专家寄语参考文献
作者介绍
1. 冯飞,有 10余年IT研发经验,专注于大数据相关技术领域,持续跟踪研究大数据计算引擎的理论模型及其演进,深入研读Flink、Apache Beam、Spark等的源码,尤其精通Flink。目前从事批流AI融合的新一代数据仓库设计、研发等工作。2. 崔鹏云,毕业于北京邮电大学,获硕士学位,曾在MicroSoft和Teradata国外知名企业的研发中心供职9年,有15年的企业级海量数据离线和在线分析技术应用实战经验,拥有国内外众多TB及PB级大数据客户实时数据处理和分析落地能力。3. 陈冠华,毕业于北京大学计算机软件与理论专业,获博士学位。2009~2011年在北京大学从事博士后研究工作,研究领域包括大数据内存及实时计算技术、数据仓库、数据挖掘和机器学习等,有超过15年的海量数据离线和在线处理技术的学术研究与实践经验。
序言
— 没有更多了 —
以下为对购买帮助不大的评价