序二
Flink自发布以来,在学术界与工业界都得到了极广泛的应用,可以说Flink目前已经是全球最为知名的流处理系统框架了,甚至没有之一。但是Flink的使用场景远不止流处理,它在批处理、图、机器学习等场景中依旧可以工作得很好。Flink遵循MapReduce的设计,为用户提供了一组低级编程API(Java语言),同时设计了更高的抽象Table API,支持以Flink SQL的方式进行数据处理。
目前,湖仓一体架构正逐步得到应用。Flink的批流一体设计理念在湖仓一体架构下有着非常大的架构优势,基本上已经成为湖仓一体架构下计算引擎的首选,这也得益于Flink背后的一些关键设计思想。
● Flink定位于流计算引擎。这并不意味着Flink只能做流计算,而是Flink用流处理的设计思想更高维度地抽象了数据处理的过程。Flink不提供持久化能力,而是专注于提供跨数千台机器的实时数据处理能力,同时提供多种编程接口,从设计理念到API提供,统一了批流处理过程。这种设计理念极大程度上降低了不同场景下的数据开发成本以及多服务的维护成本,提供了更友好的架构形态。
● Flink与大数据生态无缝集成。Flink与Zookeeper、HDFS、Yarn等大数据组件完美集成,可以很好地融入大数据生态,发挥出1+1>2的效果。
对于大数据生态圈或者从事大数据相关工作的从业者,Flink是一个必学的框架,几乎所有架构下都会出现它的身影。目前Flink也在逐步发展,例如实现Flink Table Store向存储延伸。Flink发布多年,其热度依旧不减,因此无论现在还是未来,Flink都是一个非常值得学习的框架。
从学习难度来说,Flink的学习门槛会比同类其他框架略高。在Flink的设计理念中,批是特殊的流,这种批流一体的架构直接从更高维度抽象了数据处理的理念,比单纯的批处理框架或流处理框架有着更高的理解门槛。Flink的部署也比其他框架更为复杂,除了自身可以构建一套独立的集群,Flink也可以与Yarn集成。但是Flink在Yarn下提供了多种不同的On Yarn形态,需要花更多时间去研究。
伟哲做事非常认真,他会把自己在工作中遇到的一些知识进行逐一记录并反复琢磨,不断向下探索,直到掌握知识的完整原理。他将自己多年的Flink实践经验进行整理,汇聚成书,全面地讲解设计理念、数据传输、计算模型等几乎所有的Flink知识模块。
本书由浅入深,从理念到实现,全面地剖析了Flink的原理,可以作为深入学习Flink整体框架的教程,供读者了解Flink的底层知识;也可以作为Flink技术参考手册,供读者在日常的数据工作中碰到“疑难杂症”时翻阅,从而解决开发问题。
白发川
字节跳动大数据资深技术专家
Thoughtworks中国区前数据智能业务线技术负责人