Flink 项目是大数据计算领域冉冉升起的一颗新星。大数据计算引擎的发展经历了几个过程,从第 1 代的 MapReduce,到第 2 代基于有向无环图的 Tez,第 3 代基于内存计算的 Spark,再到第 4 代的 Flink。
如果你希望了解各种流式计算框架的区别,请转到:大数据流式计算框架汇总和对比
因为 Flink 可以基于 Hadoop 进行开发和使用,所以 Flink 并不会取代 Hadoop,而是和 Hadoop 紧密结合。
Flink 主要包括 DataStream API、DataSet API、Table API、SQL、Graph API 和 FlinkML 等。现在 Flink 也有自己的生态圈,涉及离线数据处理、实时数据处理、SQL 操作、图计算和机器学习库等。
很多人是在 2015 年才听到 Flink 这个词的,其实早在 2008 年,Flink 的前身就已经是柏林理工大学的一个研究性项目,在 2014 年这个项目被 Apache 孵化器所接受后,Flink 迅速成为 ASF(Apache Software Foundation)的顶级项目之一。截至目前,Flink 的版本经过了多次更新。
Flink 是一个开源的流处理框架,它具有以下特点:
Flink 主要由 Java 代码实现,它同时支持实时流处理和批处理。对于 Flink 而言,作为一个流处理框架,批数据只是流数据的一个极限特例而已。
此外,Flink 还支持迭代计算、内存管理和程序优化,这是它的原生特性。
由图1可知,Flink 的功能特性如下: