为什么Flink会成为下一代大数据解决框架的标准?
01?什么是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开始正式地进入社区开发者的视线。
【大数据开发学习资料领取方式】:加入大数据技术学习交流群458345782,点击加入群聊,私信管理员就可免费领取
02?为什么Flink会成为下一代大数据解决框架的标准?
在2014年12月,该项目成为Apache 软件基金会顶级项目,从2015年09月发布第一个稳固版本0.9,到2019年4月已经发布到1.8的版本,更多的社区开发成员也逐渐地加入,现在Flink在全球范围内拥有350多位的开发人员,不断有新的特性被发布。
同时在全球范围内,越来越多的公司开始使用Flink,在国内比较出名的互联网公司如Alibaba,美团,滴滴等,都在大规模的使用Flink作为企业的分布式大数据解决引擎。
Flink在近年来逐渐被人们所熟知和使用,其主要起因不仅由于提供同时支持高吞吐、低推迟和exactly-once语义的实时计算能力,同时Flink还提供了基于流式计算引擎解决批量数据的计算能力,真正意义实现了批流统一,同时随着Alibaba对Blink的开源,极大地加强了Flink对批计算领域的支持。
众多优秀的特性,使得Flink成为开源大数据数据解决框架中的一颗新星,随着国内社区不断推动,越来越多的国内公司开始选择使用Flink作为实时数据解决的技术,在将来不久的时间内,Flink也将会成为企业内部主流的数据解决框架,最终成为下一代大数据数据解决框架的标准。
【大数据开发学习资料领取方式】:加入大数据技术学习交流群458345782,点击加入群聊,私信管理员就可免费领取
03?Flink的重要特性及优势
有状态流计算将会随着技术的发展,逐渐成为企业作为构建数据平台的架构模式,而这种技术实现的开源方案目前从社区来看,能够满足的就是Apache Flink。Flink通过实现Google Dataflow流式计算模型实现了高吞吐,低推迟,高性能兼具实时流式计算框架。
▲有状态计算架构
同时Flink支持高效容错的状态管理,Flink能够将其状态维护在内存或者RockDB数据库中,为了防止状态在计算过程中由于系统异常而出现丢失,Flink周期性的通过分布式快照技术CheckPoints实现状态的持久化维护,使得在系统即便在停机或者者异常的情况下都能正确的进行状态恢复,从而保证在任何时间都能计算出正确的结果。
数据架构的演变过程,伴随着技术的不断迭代升级,Flink具备先进的架构理念,以及诸多的优秀特性,以及完善的编程接口,而Flink也在每一次的Release版本中,不断推出新的特性。
例如Queryable State功能的提出,将直接容许客户通过远程的方式直接获取流式计算任务的状态信息,也就是说数据不需要落地数据库就能直接从流式应用中直接查询出,对于实时交互式的查询业务可以直接从Flink的状态中查询最新的结果,当然这个功能目前还属于Beta版本,但是相信在不久的未来,会变得越来越完善,那时Flink将不仅作为实时流式解决的框架,更多的可能会成为一套实时的存储引擎,会让更多的客户从有状态计算的技术中获取收益。
同时支持高吞吐、低推迟、高性能
Flink是一套集高吞吐,低推迟,高性能三者于一身的分布式流式数据解决框架。
非常成熟的计算框架Apache Spark也只能兼顾高吞吐和高性能特性,在Spark Streaming流式计算中无法做到低推迟保障;而Apache Storm只能支持低推迟和高性能特性,但是无法满足高吞吐的要求。而对于满足高吞吐,低推迟,高性能这三个目标对分布式流式计算框架是非常重要的。
支持事件时间(Event Time)概念
在流式计算领域中,窗口计算的地位举足轻重,但目前大多数计算框架窗口计算所采用的都是系统时间(Process Time),也是事件传输到计算框架解决时,系统主机的当前时间,Flink能够支持基于事件时间(Event Time)语义的进行窗口计算,就是使用事件产生的时间,这种时间机制使得事件即便无序到达甚至推迟到达,数据流都能够计算出准确的结果,同时保持了事件本来产生时的在时间维度的特点,而不受网络传输或者者计算框架的影响。
支持有状态计算
Flink在1.4版本中实现了状态管理,所谓状态就是在流式计算过程中将算子的中间结果数据的保存在内存或者者DB中,等下一个事件进入接着从状态中获取中间结果进行计算,从而无需基于一律的原始数据统计结果,这种做法极大地提升了系统的性能,同时也降低了计算过程的耗时。
对于数据量非常大且逻辑运算非常复杂的流式运算,基于状态的流式计算则显得非常使用。
支持高度灵活的窗口(Window)操作
在流解决应用中,数据是连续不断的,需要通过窗口的方式对流数据进行肯定范围的聚合计算,例如统计在过去的1分钟内有多少客户点击了某一网页,在这种情况下,我们必需定义一个窗口,用来收集最近一分钟内的数据,并对这个窗口内的数据再进行计算。
Flink将窗口划分为基于Time、Count、Session,以及Data-driven等类型的窗口操作,窗口能够用灵活的触发条件定制化从而达到对复杂的流传输模式的支持,不同的窗口操作应用能够反馈出真实事件产生的情况,客户可以定义不同的窗口触发机制来满足不同的需求。
基于轻量级分布式快照(Snapshot)实现的容错
Flink能够分布式运行在上千个节点之上,将一个大型计算的流程拆解成小的计算过程,而后将计算过程分布到单台并行节点上进行解决。
在任务执行过程中,能够自动的发现事件解决过程中的错误而导致数据不一致的问题,常见的错误类型例如:节点宕机,或者者网路传输问题,或者是因为客户由于更新或者修复问题而导致计算服务重启等。
在这些情况下,通过基于分布式快照技术的Checkpoints,将执行过程中的任务信息进行持久化存储,一旦任务出现异常宕机,Flink能够进行任务的自动恢复,从而确保数据在解决过程中的一致性。
基于JVM实现独立的内存管理
内存管理是每套计算框架需要重点考虑的领域,尤其对于计算量比较大的计算场景,数据在内存中该如何进行管理,针对内存管理这块,Flink实现了自身管理内存的机制,尽可能减少Full GC对系统的影响。
另外通过自己设置序列化/反序列化方法将所有的对象转换成二进制在内存中存储,降低数据存储的大小,更加有效的对内存空间进行利用,降低GC所带来的性能下降或者者任务中止的风险,同时提升了分布式解决过数据传输的性能。
因而Flink较其余分布式解决的框架则会显得更加稳固,不会由于JVM GC等问题而导致整个应用宕机的问题。
Save Points(保存点)
对于7*24小时运行的流式应用,数据源源不断的接入,在一段时间内应用的终止都有可能导致数据的丢失或者者计算结果的不精确性,例如进行版本的更新,停机运维操作等,都能导致这种情况发生。
然而值得一提的是Flink通过其Save Points技术能够将任务执行的快照(Snapshot)保存在存储介质上,等待任务重启的时候可以直接从实现保存的Save Points恢还原有的计算状态,使得任务继续按照停机之前的状态继续运行,Save Points技术可以让客户更好的管理和运维实时流式应用。
同时Flink除了上述的特性之外也具备其余非常优秀的特性,可以让客户有更多选择。Flink具有非常多的优秀特性,这不仅让Flink在社区的知名度越来越高,也吸引了众多的企业参加研发和使用Flink这项技术。【大数据开发学习资料领取方式】:加入大数据技术学习交流群458345782,点击加入群聊,私信管理员就可免费领取
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 为什么Flink会成为下一代大数据解决框架的标准?