当今互联网已进入大数据时代,大数据技术已广泛应用于金融、医疗、教育、电信、政府等领域。各行各业每天都在产生大量的数据,数据计量单位已从Byte、KB、MB、GB、TB发展到PB、EB、ZB、YB甚至BB、NB、DB级。预计未来几年,全球数据将呈爆炸式增长。谷歌、阿里巴巴、百度、京东等互联网公司都急需掌握大数据技术的人才,大数据相关人才出现了供不应求的状况。
Flink作为下一代大数据处理引擎,现已成为大数据领域继Spark之后最活跃、最高效的大数据计算平台,是大数据产业中的一股不可或缺的力量。Flink提供了Java和Scala的高级API,支持一组丰富的高级工具,包括使用SQL进行结构化数据处理的Table API&SQL、用于机器学习的FlinkML、用于图处理的Gelly,以及用于实时流处理的DataStream API。这些高级工具可以在同一个应用程序中无缝地组合,大大提高了开发效率,降低了开发难度。
很多互联网公司都使用Flink来实现公司的核心业务,例如阿里巴巴的云计算平台、京东的推荐系统等,只要和海量数据相关的领域,都有Flink的身影。因此,Flink已经成为大数据开发和从业人员的必备工具。
本书基于Flink 1.13.X新版本编写,主要使用函数式编程语言Scala进行讲解,知识面比较广,涵盖了当前整个Flink生态系统主流的大数据开发技术。全书内容共7章,各章内容概述如下:
第1章讲解Flink的基础知识,包括Flink应用场景、主要组件、编程模型等,最后通过一个单词计数示例带领读者快速体验Flink应用程序的编写。
第2、3章讲解Flink的多种运行时架构、任务调度原理、数据分区、Flink集群的安装部署以及Flink命令行操作、应用程序提交、常用Shell命令等。
第4~7章讲解Flink流式计算DataStream API、关系型计算Table&SQL API以及图计算框架Gelly等的基础知识、架构原理,同时包括常用Shell命令、API操作、内核源码剖析,并通过多个实际案例讲解各个框架的具体应用以及与Hadoop生态系统框架Hive、Kafka的整合操作。
本书是一本真正提高读者动手能力、以实操为主的入门图书。通过对本书的学习,读者能够对Flink相关框架迅速理解并掌握,可以熟练使用Flink集成环境、成功搭建属于自己的Flink集群并进行大数据项目的开发。
本书推荐的阅读方式是按照章节顺序从头到尾阅读,因为后面的很多章节是以前面的章节为基础的,而且这种一步一个脚印、由浅入深的阅读方式将使你更加顺利地掌握Flink的开发技能。
学习本书时,首先学习第1章的初识Flink,并使用Scala在IDEA中编写Flink程序;然后学习第2章,掌握Flink的运行架构及任务调度原理;最后依次学习第3~7章,学习每一章时先了解该章的基础知识和框架的架构原理,再进行Shell命令、API操作等实操练习,这样学习效果更好。当书中的理论和实操知识都掌握后,可以举一反三,自己开发一个Flink应用程序,或者将所学的知识运用到自己的编程项目上,也可以到各种在线论坛与其他Flink爱好者进行讨论,互帮互助。
本书可作为Flink新手或大数据开发人员和从业者的学习用书,要求读者具备一定的Java、Linux、Hadoop基础。
为方便读者使用本书,本书还提供了源代码和PPT课件,读者扫描下述二维码即可获取本书源代码和PPT课件。如有疑问,请联系booksaga@126.com,邮件主题写“Flink大数据分析实战”。
尽管笔者已尽心竭力,但限于水平,书中难免存有疏漏,敬请同行专家和广大读者朋友斧正。
张伟洋
2021年10月于青岛