Fault-tolerance in Flink(三)|学习笔记

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 快速学习 Fault-tolerance in Flink

开发者学堂课程【开源 Flink 极速上手教程:Fault-tolerance in Flink】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/331/detail/3710


Fault-tolerance in Flink(三)


四、Flink 的状态管理

1.Flink 状态管理

图片37.png

首先定义一个状态,在例子里边,需要给出其它的信息,一个是它的状态识别 ID 的一个唯一名称,一个是它的状态数据类型。在 case 里就是一个 mypolo 自定义的一个 photo 类型。然后,会向它本地状态后端来去注册的状态,再从本地的状态后端去理解。

2.Flink 本地状态后端-JVM Heap

Flink 本地后端有两种。一种是它任务本地的。它里边的数据,实际上就是搜索对象的代理,它的读写都是以对象的形式去书写的,所以它非常的快。但是,它也有两个问题,第一个就是对象的方式,它实际上比磁盘上序列化压缩之后的数据膨胀了很多倍,通常来说都会达到十倍,所以它占用的空间更大。第二个,如果数据量大了之后,它有可能导致 DC 的问题,很严重。那第二个,是读写的时候不做序列化,但是它在平常操作的时候,需要数据,所以它的义务在发展的过程或以上没问题。另外,额外的开销,在做采矿的时候,它的 CPU 消耗就增加的很厉害。

图片38.png

3. Flink 本地状态后端-RocksDB

第二种类型的状态,后端是 RocksDB。它实际上是在读写的时候,就进行数据的资料录入,所以它读写的速度比LVM需要更多的时间,很多在普通的 APP 里应用。它的优点是 L3结构,天生综合之后生成一些文件,所以它在异步上传的过程当中,只是一个文件的拷贝,CPU 的消耗低,带动快。

图片39.png


五、总结

第一个是有状态的计算。

首先有一个无穷无尽的数据源。然后,本地的一个运算的进程,进程里面有逻辑,然后去处理一笔一笔的数据。接下来是分布式的流程。就是对流进行划分,然后处理。接下来又介绍了什么叫做状态,就算状态只处理一次事件就是状态计算,时间之间有关联,需要记录并去处理比较有状态的。那也介绍了状态有哪几种驱动。窗口统计,还有就是历史数据的记录分析。

第二个全局一致性快照。

因为 Flink 是一个分布式的系统。所以介绍了分布式系统的全局一致性拍照。这是拍照的部分,一个是经常本地的状态。接下来说到什么叫重新知性,质性的定义是如果两个事件先后发生,那如果后面发生这件事情之前被包含在一个通道,前面的时间也可以让你满足这种条件。第二个,Flink 里边很多产品是依赖一种支持 SAS 去运行的,规避掉了对广告消息的一个情景。从而能够大大的降低它这种扩张的存储空间。

第三个是 Flink 的容错机制

这里有一个 berry,它对应的是 mark。然后拍照的过程,有一个长远的考虑,没法来去注入担任复发拍照,然后,拍照的执行过程当中,它是随时传输数据的。每一个节点都只需要其它本地的状态就行了地方比展览。最后解除的条件,这样也是中部的软件去判断的,所有的节点本地的材料都做完了,数据比较完整的拍照。也举一个例子,流程怎么样。到最后还介绍了,如果是更复杂的场景,如果是去掉一个多流。

然后,介绍了 Flink 里边的状态是怎么管理的,除了这种全局的一次性拍照的这种。数据备份恢复之外,都有两种不同的本地存储的选择,一种是直接用的 JVM,它的好处在于它的速度很快,它以对象的形式没有区别化的数据化。但是它的问题是占的空间太大,它能处理的状态数据量比较小。然后一旦太大就会产生严重的问题。所以在生产当中,只能当数据量正常处理小。另外,还有一种状态存储是 RocksDB,它的好处是数量大,然后它的坏处是日常数据传输慢,处理速度不够快。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
6月前
|
传感器 存储 缓存
[尚硅谷flink学习笔记] 实战案例TopN 问题
这段内容是关于如何使用Apache Flink解决实时统计水位传感器数据中,在一定时间窗口内出现次数最多的水位问题,即"Top N"问题。首先,介绍了一个使用滑动窗口的简单实现,通过收集传感器数据,按照水位计数,然后排序并输出前两名。接着,提出了全窗口和优化方案,其中优化包括按键分区(按水位vc分组)、开窗操作(增量聚合计算count)和过程函数处理(聚合并排序输出Top N结果)。最后,给出了一个使用`KeyedProcessFunction`进行优化的示例代码,通过按键by窗口结束时间,确保每个窗口的所有数据到达后再进行处理,提高了效率。
177 1
|
6月前
|
分布式计算 资源调度 Hadoop
Hadoop学习笔记(HDP)-Part.18 安装Flink
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
226 2
Hadoop学习笔记(HDP)-Part.18 安装Flink
|
前端开发 数据可视化 关系型数据库
用 PolarDB - X + Flink 搭建实时数据大屏|学习笔记(三)
快速学习用 PolarDB - X + Flink 搭建实时数据大屏
用 PolarDB - X + Flink 搭建实时数据大屏|学习笔记(三)
|
存储 运维 监控
如何开通实时计算 Flink 版|学习笔记(三)
快速学习如何开通实时计算 Flink 版
如何开通实时计算 Flink 版|学习笔记(三)
|
机器学习/深度学习 SQL 人工智能
实时计算 Flink 训练营场景与应用|学习笔记(三)
快速学习实时计算 Flink 训练营场景与应用
实时计算 Flink 训练营场景与应用|学习笔记(三)
|
SQL 存储 搜索推荐
实时计算 Flink 训练营场景与应用|学习笔记(二)
快速学习实时计算 Flink 训练营场景与应用
实时计算 Flink 训练营场景与应用|学习笔记(二)
|
SQL 存储 弹性计算
实时计算 Flink 与你相约阿里云|学习笔记(二)
快速学习实时计算 Flink 与你相约阿里云
实时计算 Flink 与你相约阿里云|学习笔记(二)
|
传感器 存储 Shell
走进 Apache Flink(二)|学习笔记
快速学习走进 Apache Flink
218 0
走进 Apache  Flink(二)|学习笔记
|
SQL 消息中间件 存储
Flink SQL_Table 介绍与实战(二)|学习笔记
快速学习 Flink SQL_Table 介绍与实战
251 0
Flink SQL_Table 介绍与实战(二)|学习笔记
|
存储 分布式计算 API
Stream Processing with Apache Flink(二)|学习笔记
快速学习 Stream Processing with Apache Flink
158 0