当前位置:网站首页>【flink】flink学习
【flink】flink学习
2022-07-06 09:15:00 【kiraraLou】
前言
flink 是什么?
对于无界和有界的数据流进行有状态计算引擎
常见的数据架构
- 传统基础数据架构
- 微服务数据架构
- 大数据数据架构
- 有状态流计算架构
基于有状态流计算方式最大的优势:不需要将原始数据重新从外部存储中拿出来,从而进行全量计算,因为这种计算方式的代价可能是非常高的。
用户不需要通过调度和各种批计算工具,从数据仓库中获取数据统计结果,然后在落地存储,减少数据计算过程中的时间损耗和硬件存储。

为什么选Flink
Flink 具有如下的优势:
(1)同时支持高吞吐、低延迟、高性能
Spark streaming 无法做到低延迟。
Storm 无法满足高吞吐。
(2)支持事件时间(Event Time)概念
在流式计算中,窗口计算的地位举足轻重,目前大多数框架窗口计算采用的都是系统时间(Process Time),就是时间传输到计算框架处理时,系统主机的当前时间。
Flink 能够支持基于事件时间 语义进行窗口计算。这种基于时间驱动的机制使得事件即使乱序到达,流系统也能够计算出精确结果,保持了事件原本产生时的时序性。
(3)支持有状态计算
所谓的状态就是在流式计算过程中将算子的中间结果数据保存在内存或文件系统中,等下一个事件进入算子后可以从之前的状态中获取中间结果后计算当前的结果。无需每次都基于全部的原始数据来统计结果。
(4)支持高度灵活的窗口(Window)操作
数据是连续不断的,需要通过窗口的方式对流数据进行一定范围的聚合计算。
(5)轻量级分布式快照(Snapshot)实现的容错
Flink 能够自动发现事件处理过程中的错误,如节点宕机、网络传输等,基于分布式快照的checkpoint,将执行过程中的状态信息进行持久化存储。
(6)基于JVM 实现独立的内存管理
Flink 自管理内存,尽可能减少JVM GC 对系统的影响。Flink 通过将数据序列化/反序列化方法将数据对象转化成二进制存储在内存,降低数据存储大小。
(7)Save Point (保存点)
在一段时间内应用的终止可能会导致数据的丢失或者计算结果的不准确,例如集群升级和停机维护等,Flink 通过save point技术将任务执行的快照保存在介质上,当任务重启后,可以直接从事先保存的Save point恢复原有的计算状态。
Flink vs Spark
都能同时支持流式计算和批量处理。
数据处理架构
spark 通过批处理模式来统一处理不同类型的数据集,对于流数据是将数据按照批次切分成微批(有界数据集)来进行处理。
Flink 通过流处理模式来统一处理不同类型的数据集。对于有界数据可以转化成无界数据统计进行流式,最终将批处理和流处理统一在一套流式引擎中。
数据模型
Spark 采用的是RDD 模型。spark streaming 的 DStream 是一组组小批数据RDD 的集合。
Flink 基本数据模型是 数据流,以及事件(Even)序列。
运行时的架构
spark 是批计算,将DAG划分为不同的stage,一个完成后才能进行下一个。
flink 是标准的流计算架构,一个事件在一个节点完成处理后可以直接发往下一个节点进行处理。
提交模式
- session 会话模式
- Pre-job 单作业模式
- Application 应用模式
主要区别在于:集群的生命周期以及资源的分配方式。 以及应用的(main方法)到底在哪里执行,客户端cllient还是 jobmanager。
边栏推荐
- Error connecting to MySQL database: 2059 - authentication plugin 'caching_ sha2_ The solution of 'password'
- L2-006 tree traversal (25 points)
- 自动机器学习框架介绍与使用(flaml、h2o)
- error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead
- 库函数--(持续更新)
- 图片上色项目 —— Deoldify
- Cookie setting three-day secret free login (run tutorial)
- Summary of numpy installation problems
- Request object and response object analysis
- [蓝桥杯2017初赛]包子凑数
猜你喜欢

error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead

How to build a new project for keil5mdk (with super detailed drawings)

Request object and response object analysis

MTCNN人脸检测

Did you forget to register or load this tag

保姆级出题教程

一键提取pdf中的表格

Basic use of redis

One click extraction of tables in PDF

Kept VRRP script, preemptive delay, VIP unicast details
随机推荐
TCP/IP协议(UDP)
double转int精度丢失问题
Deoldify project problem - omp:error 15:initializing libiomp5md dll,but found libiomp5md. dll already initialized.
Pytorch基础
ES6 let and const commands
ES6 let 和 const 命令
Face recognition_ recognition
一键提取pdf中的表格
Number game
Install mongdb tutorial and redis tutorial under Windows
JDBC principle
Leetcode 461 Hamming distance
L2-004 is this a binary search tree? (25 points)
Solution of deleting path variable by mistake
[NPUCTF2020]ReadlezPHP
Machine learning notes week02 convolutional neural network
Tcp/ip protocol (UDP)
QT creator create button
Database advanced learning notes -- SQL statement
01 project demand analysis (ordering system)