当前位置:网站首页>主流实时流处理计算框架Flink初体验。
主流实时流处理计算框架Flink初体验。
2022-07-29 05:20:00 【本本的香菜】
2022 年 5 月 1 日
??点此进入博客主页
—— 新时代的农民工 ??
—— 换一种思维逻辑去看待这个世界 ??
今天是加入CSDN的第1154天。觉得有帮助麻烦??点赞、??评论、收藏啦。

概述
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。百度百科
Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink 被设计为在所有常见的集群环境中运行,以内存中的速度和任何规模执行计算。Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。
特点
- 低延时实时流处理
- 代码编写简单
Flink 已经是最近几代通用大数据框架之一,相对一系列老前辈来说应用广泛、使用简单。 - 支持大型、复杂的状态处理
允许有数百 GB 以上的状态存储。 - 支持大规模分布式部署
自身有 Standalone 集群模式,也支持部署到 Yarn、K8S 上。 - 迭代速度快
- 结果准确性和良好的容错性
使用的一般场景
- 机器资源非常的多:能够提供至少 24 个 CPU 核心和百 GB 以上的内存,Flink 所在的机器硬盘必须为 SSD
- 吞吐量大或未来扩展要求很大:每秒一万条只能勉强算大,十万条可以算大
- 需求复杂:有大量复杂的清洗、去重、转换等操作 对低延时有极高要求:10
- 秒以内的延迟才能算作低延迟,1 秒以内的延迟要求就需要非常仔细地处理
事件驱动
事件驱动类型的应用,它是一类有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。比较典型的就是以 kafka 为代表的消息队列几乎都是事件驱动型应用。
流处理和批处理
流处理和批处理是两种不同处理数据的方式,接下来我们详细的学习一下两者的不同。
批处理
批处理的特点是有界、持久、大量,非常适合需要访问全套记录才能完成的计算工作,一般用于离线统计。换句话说,批处理的触发点是数据无关的。要么是定时触发,要么是一定数量触发,要么是一张表、一套文件导入后触发。
流处理
流处理的特点是无界、实时, 无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作,一般用于实时统计。换句话说,流处理的触发点是数据相关的。是一套由事件驱动的体系结构,其中任何一个部分都是收到一条数据后立刻分析与触发有关的信息并执行处理,例如 offset、例如 time、例如特定字段值满足要求。
两者区别对比
- 数据时效性
流式计算实时、低延迟.。| 批处理非实时、高延迟
- 数据特征
流式计算的数据一般是动态的、没有边界的。| 批处理的数据一般则是静态数据。
- 应用场景
流式计算应用在实时场景,时效性要求比较高的场景,比如实时推荐、业务监控等.
批处理应用在实时性要求不高、离线计算的场景下,比如数据分析、离线报表等.
- 运行方式
流式计算的任务是持续进行的。 | 批处理是一个或一系列一次性的 job
- 处理效能
流式计算效能一般比较低。对任何单独的请求都完整处理,甚至需要执行与乱序和状态相关的补偿操作;需要全天候预备着大量计算资源,如果有灵活的规划和调度则可以大幅缓解这个问题。
批处理的计算效能很高。一次性快速将大批量数据执行完毕,有着大量的类似压缩、SIMD 等的优化手段,效能可以轻易比流式计算高出多个数量级;按需执行,平常不运行时可以不消耗任何计算资源。
Flink中的数据处理方式
在flink的世界里,一切数据都是由流组成的,任何类型的数据都是作为事件流产生的。信用卡交易、传感器测量、机器日志或网站或移动应用程序上的用户交互,所有这些数据都以流的形式生成,离线数据是有界限的流,实时数据是一个没有界限的流,这就是所谓的有界流和无界流。
无界流
无界流有一个开始但没有定义的结束。它们不会终止并在生成数据时提供数据。必须连续处理无界流,即事件必须在被摄取后立即处理。不可能等待所有输入数据到达,因为输入是无界的并且不会在任何时间点完成。处理无界数据通常需要以特定顺序(例如事件发生的顺序)摄取事件,以便能够推断结果的完整性。
无界数据流就是指有始无终的数据,数据一旦开始生成就会持续不断的产生新的数据,即数据没有时间边界。无界数据流需要持续不断地处理。
有界流
有界流具有定义的开始和结束。可以通过在执行任何计算之前摄取所有数据来处理有界流。处理有界流不需要有序摄取,因为始终可以对有界数据集进行排序。有界流的处理也称为批处理。
有界数据流就是指输入的数据有始有终。例如数据可能是一分钟或者一天的交易数据等等
Flink编程模型(API)

用于开发的是第三层,即DataStrem/DataSetAPI。用户可以使用DataStream API处理无界数据流,使用DataSet API处理有界数据流。同时这两个API都提供了各种各样的接口来处理数据。例如常见的map、filter、flatMap等等,而且支持python,scala,java等编程语言。
边栏推荐
- The openatom openharmony sub forum was successfully held, and ecological and industrial development entered a new journey
- Fantom (FTM) surged 45% before the FOMC meeting
- Common prompt pop-up box of uniapp
- Synchronous development with open source projects & codereview & pull request & Fork how to pull the original warehouse
- The bear market is slow, and bit.store provides stable stacking products to help you get through the bull and bear market
- 新手入门:手把手从PHP环境到ThinkPHP6框架下载
- 与多家机构战略合作,背后彰显PlatoFarm元宇宙龙头的实力
- 熊市慢慢,Bit.Store提供稳定Staking产品助你穿越牛熊
- CMD window under Windows connects to MySQL and operates the table
- Windows下cmd窗口连接mysql并操作表
猜你喜欢

day02作业之进程管理

裸金属云FASS高性能弹性块存储解决方案

Starfish OS:以现实为纽带,打造元宇宙新范式

华为2020校招笔试编程题 看这篇就够了(上)

DeFi 2.0的LaaS协议,重振DeFi赛道发展的关键

与张小姐的春夏秋冬(2)

Laravel service container (Application of context binding)

Bare metal cloud FASS high performance elastic block storage solution

Huawei 2020 school recruitment written test programming questions read this article is enough (Part 1)

DAO赛道异军突起,M-DAO的优势在哪里?
随机推荐
Win10+opencv3.2+vs2015 configuration
C# 连接 SharepointOnline WebService
山寨币SHIB 在 ETH 鲸鱼的投资组合中拥有 5.486 亿美元的股份——交易者应提防……
Synchronous development with open source projects & codereview & pull request & Fork how to pull the original warehouse
闪贷Dapp的调研及实现
麦当娜“Hellbent”购买130万美元的nft无聊猿,现在被认为太贵了
Read and understand move2earn project - move
浅谈分布式全闪存储自动化测试平台设计
极致通缩和永动机模型,将推动 PlatoFarm 爆发
新手入门:手把手从PHP环境到ThinkPHP6框架下载
Training log 7 of the project "construction of Shandong University mobile Internet development technology teaching website"
30 knowledge points that must be mastered in quantitative development [what is level-2 data]
全闪分布式,如何深度性能POC?
大部分PHP程序员,都搞不懂如何安全代码部署
Windows下cmd窗口连接mysql并操作表
手撕ORM 框架(泛型+注解+反射)
Refresh, swagger UI theme changes
Gluster集群管理小分析
Detailed steps of JDBC connection to database
与张小姐的春夏秋冬(3)