AI编程助手
AI免费问答

大数据实时处理的王者-Flink

絕刀狂花   2025-08-02 08:12   297浏览 原创

近年来,流处理技术日益受到关注。实时数据分析的价值不断提升,许多系统都依赖于连续的事件流进行数据收集和处理,不仅限于互联网领域,还包括车联网、电力系统和穿戴设备等。然而,大多数公司尚未采用流处理技术来解决实时大数据分析问题,原因可能是存储有限数据更为简单,且使用sql等分析方法更为便捷。但实际上,采用流处理方式处理这些数据更为合理,尽管这涉及到数据一致性和时间等复杂问题,甚至触及物理学领域。

大数据实时处理的王者-Flink图flink

不熟悉流处理的朋友可以阅读这两篇文章来了解更多:什么是实时流式计算?https://www.php.cn/link/af7ea05940553f46a0aec14fdaf0d2e7 以及 Streaming-大数据的未来 https://www.php.cn/link/d916d57cb76b24368db917a7f40e0484

幸运的是,我们有Flink。与Storm和Spark Streaming相比,Flink更贴近Google Dataflow的理念(详见文章实时计算大数据处理的基石-Google Dataflow https://www.php.cn/link/ca4f76fc1601927e425f9487890361a6 Streaming的微批处理,同时也支持离线批处理,因为在Flink中,批处理是流处理的一个子集,有限数据处理本质上是无限数据处理的一部分。作为一个高度创新的开源流处理器,Flink具备容错性、高吞吐和低延迟等优势。一个优秀的流处理框架不仅应具备低延迟和高吞吐,还应能实现消息的恰好一次传递,并拥有出色的容错机制。

大数据实时处理的王者-Flink图 google dataflow

Twitter开源的Storm框架曾风靡一时,在Hadoop初期,Storm弥补了Hadoop无法进行实时数据处理的缺陷,广泛应用于各大公司。Storm的延迟达到毫秒级,但难以实现高吞吐,且无法保证消息的恰好一次传递。虽然可以通过ack机制来保证,但这会带来极大的开销,导致许多使用Storm的公司面临消息积压的问题,这几乎是不可避免的。

大数据实时处理的王者-Flink图Storm

将离线与实时处理分开的Lambda架构使用批处理技术处理全量数据,采用流式计算处理实时增量数据。同时支持流处理和批处理的计算引擎有两种选择:Apache Spark和Apache Flink。从技术和生态系统的综合考虑,Spark的技术理念是基于批处理来模拟流计算,而Flink则相反,采用基于流计算来模拟批计算。

大数据实时处理的王者-Flink图spark

从技术发展方向来看,用批处理模拟流计算存在一定的技术局限性,且这些局限性可能难以突破。而Flink基于流计算模拟批处理,在技术上具有更好的扩展性。

Flink起源于欧洲的一个大数据研究项目StratoSphere,该项目是柏林工业大学的一个研究性项目。早期,Flink主要用于批处理,但在2014年,StratoSphere的核心成员孵化出Flink,并将其捐赠给Apache,成为Apache的顶级大数据项目。Flink的计算主流方向被定位为Streaming,即用流式计算处理所有大数据,这就是Flink技术诞生的背景。

2015年,阿里开始介入Flink,负责资源调度和流式SQL的优化,成立了阿里内部版本Blink。在最近的1.9版本中,Blink开始合并入Flink。未来,Flink将支持Java、Scala、Python等更多语言,并在机器学习领域大展拳脚。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。