Flink原理、实战与性能优化
上QQ阅读APP看书,第一时间看更新

1.1 Apache Flink是什么

在当前数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如何进行有效的处理,成为当下大多数公司所面临的问题。随着雅虎对Hadoop的开源,越来越多的大数据处理技术开始涌入人们的视线,例如目前比较流行的大数据处理引擎Apache Spark,基本上已经取代了MapReduce成为当前大数据处理的标准。但随着数据的不断增长,新技术的不断发展,人们逐渐意识到对实时数据处理的重要性。相对于传统的数据处理模式,流式数据处理有着更高的处理效率和成本控制能力。Apache Flink就是近年来在开源社区不断发展的技术中的能够同时支持高吞吐、低延迟、高性能的分布式处理框架。

在2010年至2014年间,由柏林工业大学、柏林洪堡大学和哈索普拉特纳研究所联合发起名为“Stratosphere: Information Management on the Cloud”研究项目,该项目在当时的社区逐渐具有了一定的社区知名度。2014年4月,Stratosphere代码被贡献给Apache软件基金会,成为Apache基金会孵化器项目。初期参与该项目的核心成员均是Stratosphere曾经的核心成员,之后团队的大部分创始成员离开学校,共同创办了一家名叫Data Artisans的公司,其主要业务便是将Stratosphere,也就是之后的Flink实现商业化。在项目孵化期间,项目Stratosphere改名为Flink。Flink在德语中是快速和灵敏的意思,用来体现流式数据处理器速度快和灵活性强等特点,同时使用棕红色松鼠图案作为Flink项目的Logo,也是为了突出松鼠灵活快速的特点,由此,Flink正式进入社区开发者的视线。

2014年12月,该项目成为Apache软件基金会顶级项目,从2015年9月发布第一个稳定版本0.9,到目前撰写本书期间已经发布到1.7的版本,更多的社区开发成员逐步加入,现在Flink在全球范围内拥有350多位开发人员,不断有新的特性发布。同时在全球范围内,越来越多的公司开始使用Flink,在国内比较出名的互联网公司如阿里巴巴、美团、滴滴等,都在大规模使用Flink作为企业的分布式大数据处理引擎。

Flink近年来逐步被人们所熟知,不仅是因为Flink提供同时支持高吞吐、低延迟和exactly-once语义的实时计算能力,同时Flink还提供了基于流式计算引擎处理批量数据的计算能力,真正意义上实现了批流统一,同时随着阿里对Blink的开源,极大地增强了Flink对批计算领域的支持。众多优秀的特性,使得Flink成为开源大数据数据处理框架中的一颗新星,随着国内社区不断推动,越来越多的国内公司开始选择使用Flink作为实时数据处理技术。在不久的将来,Flink也将会成为企业内部主流的数据处理框架,最终成为下一代大数据处理的标准。