Flink带头大哥2019/01/28         
Apache Flink(简称Flink)是大数据处理领域冉冉升起的一颗“老”星,说它是老星是因为这个项目诞生挺早,甚至要早于大家熟知的Spark、Storm、Kafka等框架,但火得晚。
我们知道Hadoop在2005年左右诞生2009年开始崭露头角,这之后逐步受到各大公司的欢迎。Flink也早在2009年已经出现,此后一直默默无闻,但是直到 2015 年才突然出现在大数据舞台,然后似乎在一夜之间从一个无人所知的系统迅速转变为人人皆知的流式处理引擎。主要原因在于很多流式计算框架往Hadoop迁移的过程中,发现当前流行的很多框架对流式处理对不是太好,即使是Storm,这个时候大家发现Apache Flink对流式处理支持的比较好,并逐步进入大家的视野,越来越受欢迎。
目前,Flink被公认为新一代的大数据计算引擎,如日中天,但其崛起之路相当漫长,可以说Flink起了个大早,赶了个晚集。
Flink诞生于欧洲的一个大数据研究项目,原名 StratoSphere。该项目是柏林工业大学的一个研究性项目,早期专注于批计算。2014 年,StratoSphere 项目中的核心成员孵化出 Flink,并在同年将 Flink 捐赠 Apache,后来Flink顺利成为Apache的顶级大数据项目。同时 Flink 计算的主流方向被定位为流计算,即用流式计算来做所有大数据的计算工作,这就是 Flink 技术诞生的背景。
2014年Flink 作为主攻流计算的大数据引擎开始在开源大数据行业内崭露头角。区别于 Storm、Spark Streaming 以及其他流式计算引擎的是:它不仅是一个高吞吐、低延迟的计算引擎,同时还提供很多高级功能。比如它提供有状态的计算,支持状态管理,支持强一致性的数据语义以及支持 Event Time,WaterMark 对消息乱序的处理等。
2015 年是流计算百花齐放的时代,各个流计算框架层出不穷。Storm, JStorm, Heron, Flink, Spark Streaming, Google Dataflow (后来的 Beam) 等等。其中 Flink 的一致性语义和最接近 Dataflow 模型的开源实现,使其成为流计算框架中最耀眼的一颗,许多公司的技术大咖被Flink征服。
Flink之所以受到越来越多公司的青睐,肯定有它很多过人之处。
1. 支持批处理和数据流程序处理。
2. 优雅流畅的支持java和scala api。
3. 同时支持高吞吐量和低延迟。
4. 支持事件处理和无序处理通过SataStream API,基于DataFlow数据流模型。
5. 在不同的时间语义(事件时间,摄取时间、处理时间)下支持灵活的窗口(时间,滑动、翻滚,会话,自定义触发器)。
6. 拥有仅处理一次的容错担保,Flink支持刚好处理一次。
7. 拥有自动反压机制,当Flink处理数据达到上限的时候,源头会自动减少数据的输入,避免造成Flink应用的崩溃。
8. 支持图处理(批)、 机器学习(批)、 复杂事件处理(流)。
9. 在dataSet(批处理)API中内置支持迭代程序(BSP)。
10. 高效的自定义内存管理和健壮的在in-memory和out-of-core中的切换能力。
11. 同时兼容hadoop的mapreduce和storm。
12. 能够集成YARN,HDFS,Hbase 和其它hadoop生态系统的组件。
阿里巴巴基于Flink搭建的计算平台于2016年正式上线。目前,这套基于Flink搭建的实时计算平台不仅服务于阿里巴巴集团内部,而且通过阿里云的云产品API向整个开发者生态提供基于Flink的云产品支持。
阿里巴巴计算平台事业部资深技术专家莫问一次演讲中提到,阿里选择Flink的背景和初衷就是,希望在各种不同的场景下,不管是全量数据还是增量数据,亦或者实时处理,一套方案即可全部支持,Flink能做到这一点。而且,Flink用流来模拟批的机制具有更好的技术扩展性。结合大量调研,阿里技术团队最终认为:解决通用大数据计算需求,批流融合的计算引擎,才是大数据技术的发展方向。所以阿里最终选择了Flink。
2015年的Flink还不够成熟,不管是规模还是稳定性尚未经历实践。阿里在内部建立一个Flink分支,对Flink做大量的修改和完善,让其适应阿里巴巴这种超大规模的业务场景。目前阿里的Flink计算平台服务器规模已达上万台,此等规模在全球范围内也是屈指可数;基于Flink,内部积累起来的状态数据已经是PB级别规模;每天在Flink的计算平台上处理的数据已经超过万亿条;在峰值期间可以承担每秒超过4.72亿次的访问,最典型的应用场景是阿里巴巴双11大屏。
2016年Flink在阿里得到大规模应用,卓越的表现吸引了更多的公司加入这个阵营。头哥儿我就是那时候,综合考察评估之后投入Flink怀抱的。对大数据和Flink感兴趣的朋友欢迎勾搭。限于篇幅,我在文章中对于Flink的优势列得比较简单,如果有同学想深入探讨的欢迎评论区交流,有问必答。