Flink 的特点和优势

网友投稿 379 2022-11-17

Flink 的特点和优势

一.特点

(一)同时支持高吞吐、低延迟、高性能 Flink 是目前开源社区中唯一一套集高吞吐、低延迟、高性能三者于一身的分布式 流式数据处理框架。像 Apache Spark 也只能兼顾高吞吐和高性能特性,主要因为在 Spark Streaming 流式计算中无法做到低延迟保障;而流式计算框架 Apache Storm 只 能支持低延迟和高性能特性,但是无法满足高吞吐的要求。而满足高吞吐、低延迟、高 性能这三个目标对分布式流式计算框架来说是非常重要的。

(二)支持事件时间(Event Time)概念 在流式计算领域中,窗口计算的地位举足轻重,但目前大多数框架窗口计算采用的都是系统时间(Process Time),也是事件传输到计算框架处理时,系统主机的当前时 间。Flink 能够支持基于事件时间(Event Time)语义进行窗口计算,也就是使用事件 产生的时间,这种基于事件驱动的机制使得事件即使乱序到达,流系统也能够计算出精 确的结果,保持了事件原本产生时的时序性,尽可能避免网络传输或硬件系统的影响。

(三)支持有状态计算 Flink 在 1.4 版本中实现了状态管理,所谓状态就是在流式计算过程中将算子的中 间结果数据保存在内存或者文件系统中,等下一个事件进入算子后可以从之前的状态中 获取中间结果中计算当前的结果,从而无须每次都基于全部的原始数据来统计结果,这 种方式极大地提升了系统的性能,并降低了数据计算过程的资源消耗。对于数据量大且 运算逻辑非常复杂的流式计算场景,有状态计算发挥了非常重要的作用。

(五)基于轻量级分布式快照(CheckPoint)实现的容错 Flink 能够分布式运行在上千个节点上,将一个大型计算任务的流程拆解成小的计 算过程,然后将 tesk 分布到并行节点上进行处理。在任务执行过程中,能够自动发现 事件处理过程中的错误而导致数据不一致的问题,比如:节点宕机、网路传输问题,或 是由于用户因为升级或修复问题而导致计算服务重启等。在这些情况下,通过基于分布 式快照技术的 Checkpoints,将执行过程中的状态信息进行持久化存储,一旦任务出现 异常停止,Flink 就能够从 Checkpoints 中进行任务的自动恢复,以确保数据在处理过 程中的一致性(Exactly-Once)。

(六)基于 JVM 实现独立的内存管理 内存管理是所有计算框架需要重点考虑的部分,尤其对于计算量比较大的计算场 景,数据在内存中该如何进行管理显得至关重要。针对内存管理,Flink 实现了自身管 理内存的机制,尽可能减少 JVM GC 对系统的影响。另外,Flink 通过序列化/反序列化 方法将所有的数据对象转换成二进制在内存中存储,降低数据存储的大小的同时,能够 更加有效地对内存空间进行利用,降低 GC 带来的性能下降或任务异常的风险,因此 Flink 较其他分布式处理的框架会显得更加稳定,不会因为 JVM GC 等问题而影响整个 应用的运行。

(七)Save Points(保存点) 对于 7*24 小时运行的流式应用,数据源源不断地接入,在一段时间内应用的终止 有可能导致数据的丢失或者计算结果的不准确,例如进行集群版本的升级、停机运维操 作等操作。值得一提的是,Flink 通过 Save Points 技术将任务执行的快照保存在存储 介质上,当任务重启的时候可以直接从事先保存的 Save Points 恢复原有的计算状态, 使得任务继续按照停机之前的状态运行,Save Points 技术可以让用户更好地管理和运 维实时流式应用。

二.优势

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:USB Type-C集线器产品扩展新体验
下一篇:U.2固态硬盘是个啥?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~