本书介绍了当下最流行的实时数据处理引擎Flink,讲解了流处理API、批处理API、机器学习引擎FlinkML、关系型API、复杂事件处理FLinkCEP,以及指标度量与部署模式。此外,本书展开分析了流式数据处理理论中时间、窗口、水印、触发器、迟到生存期之间的关联关系;深入分析了多项式曲线拟合、分类算法SVM、推荐算法ALS-WR的理论和FlinkML实现。
希望快速上手Flink以开展实时大数据处理与在线机器学习应用的从业者,本书是不二的选择:本书首先介绍相关概念引入的原因、解决方案的演进过程、Flink的对应架构、编程案例以及开放式的思考问题。
透彻地分析了实时大数据理论的内涵及Flink的实践方法论|Flink流处理框架案头参考书
实时大数据是与时俱进的变革
从互联网时代的数据爆炸,到即将大规模铺开的 5G 通信支撑下的物联网时代的大数据浩海,作为赋能工具的大规模数据处理,技术架构起到了决定性的作用,反过来也推动了技术架构与时俱进。
在谷歌公司发表的三篇划时代论文(分别介绍 MapReduce、GFS 和 BigTable)的推动下,开源项目 Hadoop 横空出世,并于 2008 年 1 月正式成为 Apache 的顶级项目;此后,Hadoop 迅速建立起大数据生态体系,并由此衍生出一系列大数据处理的理论和与之对应的大数据处理框架:从批处理到流处理,从 Hadoop 到 Storm /
Spark,再到 Flink。本书将阐述大数据实时处理理论的变迁,并着重介绍流处理框架 Flink。
数据处理任务往往需要对全量数据进行计算,而全量数据很难使用传统关系型数据库进行批量计算,原因如下:
(1)磁盘寻址时间的提升速度远远落后于磁盘带宽的提升速度。如果数据访问包含大量的磁盘寻址,则大数据处理势必带来较大的延迟,因此基于传输带宽设计大数据处理系统更符合现状。
(2)相比全量数据计算,关系型数据库适用于在线事务处理(OLTP,On-Line Transaction Processing)场景,查询和更新是其设计的要点,索引是主要的设计方案。但是在大数据集的场景下,索引的效率往往不如全量扫描。因此,Hadoop 应运而生,借助 MapReduce 计算引擎成功解决了大数据所面临的可计算(可参考谷歌的论文 MapReduce:Simplified Data Processing on Large Clusters)、伸缩、容错等困难,成为大数据系统的标配组件。
数据爆炸式增长,以及数据处理的实时性要求越来越高,大数据处理系统越来越复杂。在这种情况下,传统的 OLTP+OLAP(On-Line Analysis Processing,在线分析处理)系统架构不堪重负:复杂的数据需求实现流程、过载的数据仓库抽取任务队列、不同的技术栈带来的需求理解偏差等将导致数据从 IT 部门到 DT 部门的周期过长;微服务方法的大规模应用,导致在分布式系统中维护全局状态的一致性异常困难,而以数据流作为中心数据源的流处理方法能有效规避这种困难。
有的学者甚至提出通过合理的架构设计,打破 CAP 定理。因此,低延迟、强一致性、适用于乱序的流处理框架 Flink 正席卷而来,即将成为大数据领域流处理的标配组件。
本书特色
本书将从多个角度讲解同一个技术概念:
(1)分析引入 Flink 这个技术概念的原因,使读者能够快速理解相关技术的应用场景,如为什么需要实时数据处理、为什么需要机器学习架构、为什么需要关系型 API、为什么需要复杂事件处理。
(2)剖析 Flink 技术的理论创新过程,使读者能够深入理解 Flink 的理论基础,使 Flink 应用开发架构师或工程师能够游刃有余地解决线上系统遇到的实际问题,如 Flink 一致性保证的异步检查点屏障的理论创新过程、机器学习中分类和推荐算法的分布式实现的理论创新过程、复杂事件处理的自动机理论创新。
(3)解析 Flink 编程 API 的架构。使读者可以从理论框架与 Flink 架构实现两个角度体会这个技术概念的内涵。
(4)总结应用 API 编程解决实际问题的方法。使读者能够在理解理论和编程API 的基础上编程解决实际问题。
(5)在每章的最后一节提出一些开放式的思考题,以便读者思考这些技术概念之间的关联。
内容组织概要
本书共分为 8 章,每章的基本内容概要如下。
第 1 章流式数据架构理论 首先,概述大数据处理架构的演进历程,使读者了解大数据处理架构正在经历怎样的变革。以韩国 SK 电信的 Driving Score 技术架构演变和流式数据架构在机器学习领域的应用为例,介绍流式数据架构的产生背景及应用场景;其次,梳理流式数据架构中主要概念间的关联和关系,并以实例分析根据事件时间开滚动窗口的内在机制;最后,论述流式数据架构中一致性理论的基础及实现方式。
第 2 章编程基础 首先,概述 Flink 的特征,使读者快速了解 Flink 是什么;其次,搭建流处理和批处理 IDEA 开发环境,使读者感性地了解 Flink 是怎么解决数据处理问题的;最后,介绍 Flink 的编程模型与运行时结构,如 API 分层关系、应用程序基本结构、运行时结构、任务调度和物理执行计划。
第 3 章流处理 API 首先,概述流处理 Pipeline、Source 和 Sink 的常见形式;其次,介绍时间特征设置与水印生成器、算子、窗口机制、连接器、状态管理与检查点编程。
第 4 章批处理 API 首先,概述批处理的程序结构,Source、Sink 与连接器的常见形式,以及常见的算子函数;其次,以两个机器学习的例子来介绍迭代的应用;最后,介绍批处理程序优化的语义注解形式。
第 5 章机器学习引擎架构与应用编程 首先,在总结 Scikit-learn 架构实践的基础上,详细分析 FlinkML 的底层实现代码;其次,分析多项式曲线拟合、分类算法、推荐算法的理论和代码实现。本章有大量代码分析,是流处理与批处理 API编程的实战部分。
第 6 章关系型 API 首先,介绍 Flink 引入关系型 API 的原因,以及 SQL 解析与优化框架 Calcite;其次,详述关系型 API 的主要内容;最后,介绍架构在DataStream 上的关系型 API 的背后机制,即动态表。
第 7 章复杂事件处理 首先,以股票异常交易检测为例讲述模式匹配的编程过程,以及流处理 API 和关系型 API 在解决这类问题时遇到的困难;其次,介绍 NFAb模式匹配编程模型;最后,基于 Flink CEP API 编程解决股票异常交易检测问题。
第 8 章监控与部署 讲述指标度量的编程模型和 Flink 集群部署模式。
才买,还没学.有源码吗?
居然一个评论都没有