前言
实时数据分析一直是一个热门话题,需要实时数据分析的场景也越来越多,如金融支付中的风控、基础运维中的监控告警、实时大盘等,此外,AI模型也需要依据更为实时的聚合结果来达到很好的预测效果。
Apache Flink是下一代开源大数据处理引擎。它是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算; 可部署在各种集群环境中,对各种大小规模的数据进行快速计算。
Apache Flink已经被证明可以扩展到数千个内核和TB级的应用程序状态,提供高吞吐量和低时延,并支持世界上一些要求很高的流处理应用程序。例如,Apache Flink在2019年阿里巴巴“双11”场景中突破实时计算消息处理峰值,达到25亿条/秒; 2020年“双11”当时的实时计算峰值达到了破纪录的40亿条/秒,数据量也达到了惊人的7TB/s,相当于一秒读完500万本《新华字典》!随着2020年“双11”阿里巴巴基于Flink实时计算场景的成功,毋庸置疑,Flink将会加速成为大厂主流的数据处理框架,最终化身为下一代大数据处理标准。
Apache Flink作为当前热门的实时计算框架之一,是从业人员及希望进入大数据行业的人员必须学习和掌握的大数据技术之一,但是作为大数据的初学者,在学习Flink时通常会遇到以下几个难题:
(1) 缺少面向零基础读者的Flink入门教程。
(2) 缺少系统化的Flink大数据教程。
(3) 现有的Flink资料、教程或图书较陈旧。
(4) 官方全英文文档难以阅读和理解。
(5) 缺少必要的数据集、可运行的实践案例及学习平台。
特别是Apache Flink从2019年被阿里巴巴收购以后,进入快速版本迭代期,不但版本更新快,而且API变化频繁,笔者在应用和研究Apache Flink时,每当遇到Flink版本更新,就不得不花费大量精力重构已经完成的代码。
为此,一方面是为了笔者自己能更系统、更及时地跟进Flink的演进和迭代; 另一方面也是为了解决面向零基础读者学习Flink(及其他大数据技术)的入门难度,编写了《Flink原理深入与编程实战——Scala+Java(微课视频版)》。笔者以为,本书具有以下几个特点:
(1) 面向零基础读者,知识点深浅适当,代码完整易懂。
(2) 内容全面系统,包括架构原理、开发环境及程序部署、流和批计算等,并特别包含了第7章“基于Flink构建批流一体数仓”和第8章“基于Flink和Iceberg数据湖构建实时数仓”内容。
(3) 所有代码均基于Flink 1.13.2。
(4) 双语实现,大部分示例、案例包含Scala和Java两种语言版本的实现。
为降低读者学习大数据技术的门槛,本书除提供了丰富的上机实践操作和详细的范例程序讲解之外,作者还为购买和使用本书的读者提供了搭建好的Hadoop和Flink大数据开发和学习环境。读者既可以参照本书的讲解自行搭建Hadoop和Flink环境,也可直接使用作者提供的开发和学习环境,快速开始对大数据和Flink的学习。
本书特别适合想要入门并深入掌握Apache Flink、流计算的读者,需要大数据系统参考教材的老师及想要了解最新Flink版本应用的从业人员。
当然,由于笔者水平所限,书中难免存在疏漏,敬请读者批评指正。
辛立伟
2022年10月
教学课件(PPT)
本书源代码