前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink基础篇|Flink是什么?

Flink基础篇|Flink是什么?

原创
作者头像
Aion
发布2024-02-02 11:33:18
1130
发布2024-02-02 11:33:18
举报

前言

我们通常说的Flink是来Apache Flink,他是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。现在越来越多的企业公司和个人都在使用Flink,来使用他的特性解决一些实时问题。

什么是Flink

官方地址:https://flink.apache.org/

在官网上开头有一段话就讲到Apache Flink,翻译过来就是:Apache Flink是一个框架和分布式处理引擎,用于在无界和有界数据流上进行有状态计算。Flink旨在在所有常见的集群环境中运行,以内存速度和任何规模执行计算。从上面的介绍中,我们可以提取到Apache Flink是一个流式计算框架,也是流处理引擎。

  • 流式计算框架:作为流式计算框架,用于处理无限量的数据,并在真正的实时上下文中运行。
  • 流处理引擎:Flink是一个分布式的、高性能的、可伸缩的、容错的流处理引擎,它支持批处理和流处理,并提供了丰富的API和库,是实时数据处理的理想选择。

Flink中的事件流

在Flink中,任何类型的数据都可以形成一种事件流,数据可以被作为 无界 或者 有界 流来处理。

  • 无界流

有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。例如监听数据,消费数据(信用卡消费时给出消费判断和消费告警

  • 有界流

有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理。例如在读取文件数据,文件在被读取时是已经确定大小,确定了数据。

Flink作为一个引擎可以存储有状态的数据流。一般情况下,我们在其他框架中,都是计算一个结果后存储在数据库,例如存储在redis、mysql,然后再读取出来做一些其他业务逻辑计算。而在Flink中有状态的数据流是指在进行数据处理时,数据流中包含的状态信息可以被存储和访问,以便在处理过程中进行状态的计算和更新。与无状态的数据流相比,有状态的数据流需要更多的存储和计算资源,因为需要维护状态的一致性和容错性。

Flink的能力

Flink可以在一个单独的机器上运行,也可以在一个集群上运行,并具有高效的数据处理能力,特别是对于大规模数据集。从官网来看,Flink有以下5种能力:

  • 正确性保证:Flink提供了精确一次的状态一致性保障,这使得它能够保证数据的准确性和可靠性。Flink还支持实践时间驱动处理和延迟时间处理。
  • 分层API:Flink提供了多种编程模型和API,包括DataStream API、DataSet API、Table API、BatchData API、ProcessFunction(时间和状态)和SQL API等,以及一系列的算子库,用于执行常见的流处理任务。
  • 聚焦运维:灵活部署,支持单节点和集群部署;支持高可用;支持savekpoint。
  • 支撑大规模计算:支持水平扩展,增量checkpoint,从官网可以看到:处理每天处理数万亿的事件,应用维护几TB大小的状态和应用在数千个内核上运行
  • 低延迟和高吞吐:Flink卓越的性能是在内存计算,有状态的 Flink 程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。任务通过访问本地(通常在内存中)状态来进行所有的计算,从而产生非常低的处理延迟。

另外,Flink支持多种资源管理框架,Flink可以在包括YARN、Mesos、Kubernetes在内的多种资源管理框架上运行,并支持在裸机集群上独立部署。

总结

本文通过Flink官网来了解Flink是什么,Flink是一个事件驱动框架引擎,得力于Flink的能力,我们可以解决工作中的很多事情,Flink主要应用场景包括实时数据计算、实时数据仓库和ETL、事件驱动型场景(如告警、监控)等。


我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 什么是Flink
  • Flink中的事件流
  • Flink的能力
  • 总结
相关产品与服务
流计算 Oceanus
流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的企业级实时大数据分析平台,具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档