Flink学习笔记(一)

流处理

批处理应用于有界数据流的处理,流处理则应用于无界数据流的处理。

有界数据流:输入数据有明确的开始和结束。

无界数据流:输入数据没有明确的开始和结束,或者说数据是无限的,数据通常会随着时间变化而更新。

在Flink中,应用程序由数据流组成,这些数据流可以经由用户自定义的算子进行转换。数据流最终形成有向图,这些图以一个或多个Source)开始,以一个或多个接收器Sink)结束。
在这里插入图片描述

通常来说,转换Transformation)与算子之间存在一对一的映射关系,但这并不是绝对的,一个转换也可以包含多个算子。

Flink可以处理来自数据流源(例如Kafka)的实时数据,同时也可以处理来自数据源的历史数据。

在这里插入图片描述

并行数据流

Flink中的程序本质上是并行和分布式的。在执行期间,流具有一个或多个流分区,每个算子都拥有一个或多个子任务。子任务之间彼此相互独立,在不同的线程、机器、或容器中执行。

子任务的数量就代表了该算子的并行度parallelism),同一程序的不同算子可能会具有不同的并行度。

在这里插入图片描述

两个算子之间可以通过一对一重新分发的方式传递数据。

  • 一对一:该模式会保留元素的分区和排序。上图中Source到map()的过程就属于一对一

  • 重新分发

    • 该模式会更改流的分区,上图中map()到keyBy()/window()的过程就属于重新分发

    • keyBy()-通过散列重新分区,broadcast()-广播,rebalance()-随即分发

及时流处理

对于大多数流应用程序来说,能够使用用于处理实时数据的相同代码重新处理历史数据,并无论如何都能产生确定性、一致性的结果,这是非常有价值的。

同等重要的是,注意事件发生的顺序,而不是交付处理的顺序,并能够推断一组事件何时(或应该)完成。

通过使用记录在数据流中的事件时间戳,而不是使用处理数据的机器的时钟,可以满足及时流处理的这些要求。

有状态流处理

Flink的操作是可以有状态的。这意味着如何处理一件事可能取决于之前所有事件的累积。

Flink 应用程序在分布式集群上并行运行。

有状态算子的并行实例集实际上是一个分片键值存储。每个并行实例负责处理一组特定键的事件,这些键的状态保存在本地。

下图显示了作业图中前三个算子以 2 的并行度运行的作业,最终由并行度为1的接收器结束。第三个算子是有状态的,第二个和第三个算子之间正在发生随机的网络连接。

在这里插入图片描述

状态始终在本地访问,这有助于 Flink 应用程序实现高吞吐量和低延迟。 你可以选择将状态保留在 JVM 堆上,如果状态开销太大,可以选择将其存储于高效率的磁盘中。

通过状态快照实现容错

Flink能够通过状态快照和流回溯的组合提供容错。这些快照将捕获分布式管道以及整个作业图的状态,将其记录在队列中,当发生故障时,进行回溯,恢复至最近的状态。快照的捕获是异步进行的,并不会影响正在处理的任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/82178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

透过源码理解Flutter中widget、state和element的关系

1、framework源码组成 Flutter中widget、state、element的源码位于framework.dart中,整个文件6693行(版本Flutter 3.12.0-14.0.pre.28)。整个代码可划分为若干部分,主要包括key、widget、state、element四部分。 1.1 key 关于key的代码65行到272行&am…

8.3.tensorRT高级(3)封装系列-tensor封装,索引计算,内存标记及自动复制

目录 前言1. Tensor封装总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-tensor封装,索引计算&a…

【Spring系列篇--关于IOC的详解】

目录 面试经典题目: 1. 什么是spring?你对Spring的理解?简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 2.什么是IoC?你对IoC的理解?IoC的重要性?将实例化对象的权利从程序员…

echart 3d立体颜色渐变柱状图

如果可以实现记得点赞分享,谢谢老铁~ 1.需求描述 根据业务需求将不同的法律法规,展示不同的3d立体渐变柱状图。 2.先看下效果图 3. 确定三面的颜色,这里我是自定义的颜色 // 右面生成颜色const rightColorArr ref(["#79D…

自动驾驶仿真:基于Carsim开发的加速度请求模型

文章目录 前言一、加速度输出变量问题澄清二、配置Carsim动力学模型三、配置Carsim驾驶员模型四、添加VS Command代码五、Run Control联合仿真六、加速度模型效果验证 前言 1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是加速度,我们需要…

git环境超详细配置说明

一,简介 在git工具安装完成之后,需要设置一下常用的配置,如邮箱,缩写,以及git commit模板等等。本文就来详细介绍些各个配置如何操作,供参考。 二,配置步骤 2.1 查看当前git的配置 git conf…

解决ios隔空播放音频到macos没有声音的问题

解决ios隔空播放音频到macos没有声音的问题 一、检查隔空播放支持设备和系统要求二、打开隔空播放接收器三、重置MAC控制中心进程END 一、检查隔空播放支持设备和系统要求 Mac、iPhone、iPad 和 Apple Watch 上“连续互通”的系统要求 二、打开隔空播放接收器 ps;我设备是同一…

基于web的停车场收费管理系统/基于springboot的停车场管理系统

摘 要 随着汽车工业的迅猛发展,我国汽车拥有量急剧增加。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。停车场的规模各不相同,对其进行管理的模…

剪枝基础与实战(3): 模型剪枝和稀疏化训练流程

Model Pruning 相关论文:Learning Efficient Convolutional Networks through Network Slimming (ICCV 2017) 考虑一个问题,深度学习模型里面的卷积层出来之后的特征有非常多,这里面会不会存在一些没有价值的特征及其相关的连接?又如何去判断一个特征及其连接是否有价值? …

redis实战-缓存数据解决缓存与数据库数据一致性

缓存的定义 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码。防止过高的数据访问猛冲系统,导致其操作线程无法及时处理信息而瘫痪,这在实际开发中对企业讲,对产品口碑,用户评价都是致命的;所以企业非常重视缓存…

【汇编语言】使用DS和[address]实现字的传送

文章目录 要解决的问题:CPU从内存单元中读取数据字的传送 要解决的问题:CPU从内存单元中读取数据 1、要求:CPU要读取一个内存单元时,必须先给出这个内存单元的地址; 2、原理:8086设备中,内存地…

LeetCode--HOT100题(35)

目录 题目描述:23. 合并 K 个升序链表(困难)题目接口解题思路1代码解题思路2代码 PS: 题目描述:23. 合并 K 个升序链表(困难) 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合…

git压缩/合并多次commit提交为1次commit提交

git压缩/合并N次commit提交为1次commit提交 假设有最近3次提交: commit_id1 commit_id2 commit_id3目标是把以上3次commit合并成1个commit,注意,最新的commit提交在最上面。 在git bash里面的操作步骤: (1&#xff0…

【周末闲谈】关于“数据库”你又知道多少?

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 系列目录前言数据库数据库的五大特点数据库介绍数据库管理系统&a…

Oracle故障案例之-19C时区补丁DSTV38更新

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

《TCP IP网络编程》第二十四章

第 24 章 制作 HTTP 服务器端 24.1 HTTP 概要 本章将编写 HTTP(HyperText Transfer Protocol,超文本传输协议)服务器端,即 Web 服务器端。 理解 Web 服务器端: web服务器端就是要基于 HTTP 协议,将网页对…

2023国赛数学建模E题思路模型代码 高教社杯

本次比赛我们将会全程更新思路模型及代码,大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…

RK3588平台开发系列讲解(AI 篇)RKNN-Toolkit2 API 介绍

文章目录 一、RKNN 初始化及对象释放二、RKNN 模型配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解 RKNN-Toolkit2 API 详细说明。 一、RKNN 初始化及对象释放 在使用 RKNN Toolkit2 的所有 API 接口时,都需要先调用 RKNN()方法初始化 RKNN 对象,…

图数据库_Neo4j和SpringBoot整合使用_实战创建明星关系图谱---Neo4j图数据库工作笔记0010

然后我们再来看一下这个明星关系图谱 可以看到这里 这个是原来的startRelation 我们可以写CQL去查询对应的关系 可以看到,首先查询出来以后,然后就可以去创建 我们可以把写的创建明星关系的CQL,拿到 springboot中去执行 可以看到,这里我们先写一个StarRelationRepository,然…

工作6年了日期时间格式化还在写YYYY疯狂给队友埋雷

前言 哈喽小伙伴们好久不见,今天来个有意思的雷,看你有没有埋过。 正文 不多说废话,公司最近来了个外地回来的小伙伴,在广州工作过6年,也是一名挺有经验的开发。 他提交的代码被小组长发现有问题,给打回了&…