Flink学习笔记(一)

流处理

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

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

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

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

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

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

在这里插入图片描述

并行数据流

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

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

在这里插入图片描述

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

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

  • 重新分发

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

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

及时流处理

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

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

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

有状态流处理

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

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

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

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

在这里插入图片描述

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

通过状态快照实现容错

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kaptcha的基本应用

Kaptcha Kaptcha 是一个用于生成和验证验证码的 Java 库,提供了丰富的生成和验证功能,并支持自定义配置。它可以用于增加应用程序的安全性,防止机器人和恶意攻击。 Kaptcha 可以生成各种类型的验证码,包括数字、字母、数字字母组…

KDD 2023 获奖论文公布,港中文、港科大等获最佳论文奖

ACM SIGKDD(国际数据挖掘与知识发现大会,KDD)是数据挖掘领域历史最悠久、规模最大的国际顶级学术会议,也是首个引入大数据、数据科学、预测分析、众包等概念的会议。 今年,第29届 KDD 大会于上周在美国加州长滩圆满结…

HTTP--Request详解

请求消息数据格式 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求头 客户端浏览器告诉服务器一些信息 请求头名称: 请求头值 常见的请求头: User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息 可…

蓝桥杯每日N题 (消灭老鼠)

大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 不清楚蓝桥杯考什么的点点下方👇 考点秘籍 想背纯享模版的伙伴们点点下方👇 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…

【日常积累】HTTP和HTTPS的区别

背景 在运维面试中,经常会遇到面试官提问http和https的区别,今天咱们先来简单了解一下。 超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果…

09- DMA(DirectMemoryAccess直接存储器访问)

DMA 09 、DMA(DirectMemoryAccess直接存储器访问)DMA配置流程 09 、DMA(DirectMemoryAccess直接存储器访问) DMA配置流程 dma.c文件 main.c文件 详见《stm32中文参考手册》表57。

tsconfig.json和jsconfig.json配置

{// 编译选项"compilerOptions": {// 生成代码的语言版本:将我们写的 TS 代码编译成哪个版本的 JS 代码// 命令行: tsc --target es5 11-测试TS配置文件.ts"target": "es5",// 指定要包含在编译中的 library"lib&quo…

3年 Android 开发的面试心经(后悔当初没有拿 N+1)

作者:勇闯天涯 当某人顺利通过大厂面试时,总会有人认为这是运气比较好罢了,但他们不曾得知对方之前受过多少苦和委屈,又付出了多少努力一步步去突破这些困境。正是因为他们的努力付出,在合适的时间与地点,用…

SSH连接工具汇总

xshell 这是个熟悉的软件啦,目前我正在使用Xshell_7 链接:https://www.xshell.com/zh/xshell/ FinalShell 国产软件,有windows和MAC版本;使用方便而且免费,但是软件比较占用内存。但是都2021年了,笔记本…

AlphaZero能否从围棋和国际象棋飞跃到量子计算?

一项新的研究表明,DeepMind惊人的游戏算法AlphaZero可以帮助释放量子计算的力量和潜力。 自两年多前出现以来,AlphaZero一再证明了其快速学习能力,将自己提升到围棋,国际象棋和将棋(日本象棋)的特级大师级别…

VHDL记录

文章目录 使用function名称作为“常量”numeric_std包集中使用乘法的注意项variable的使用对于entity设置属性的方法在entity声明中嵌入function的定义VHDL仿真读写文件File declaration/File handingFile readingFile writing小例子 使用函数 模块中打印出调试信息 使用functi…

RTC实验

一、RTC简介 RTC(Real Time Clock)即实时时钟,它是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电BCD码,四位二进制表示一位…

Java Persistence APl(JPA)——JPA是啥? SpringBoot整合JPA JPA的增删改查 条件模糊查询 多对一查询

目录 引出Jpa是啥?Jpa的使用创建实体类写dao接口类写服务类 crud增删改查增加修改根据id删除全查询分页查询 条件查询模糊查询单条件查询多条件查询模糊查询排序查询 多对一查询定义实体类auto主键策略下新增进行全查询测试 全部代码application.yml配置类pom配置文…

Java反射机制是什么?

Java反射机制是 Java 语言的一个重要特性。 在学习 Java 反射机制前,大家应该先了解两个概念,编译期和运行期。 编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些…

Python学习笔记第五十二天(Pandas 安装)

Python学习笔记第五十二天 Pandas 安装查看安装版本 安装验证后记 Pandas 安装 安装 pandas 需要基础环境是 Python,开始前我们假定你已经安装了 Python 和 Pip。 使用 pip 安装 pandas: pip install pandas安装成功后,我们就可以导入 pandas 包使用&…

iPhone(iPad)安装deb文件

最简单的方法就是把deb相关的文件拖入手机对应的目录,一般是DynamicLibraries文件夹 参考:探讨手机越狱和安装deb文件的几种方式研究 1、在 Mac 上安装 dpkg 命令 打包 deb 教程之在 Mac 上安装 dpkg 命令_xcode打包root权限deb_qq_34810996的博客-CS…

神经网络基础-神经网络补充概念-26-前向和反向传播

简单比较 前向传播(Forward Propagation): 前向传播是神经网络中的正向计算过程,用于从输入数据开始,逐层计算每个神经元的输出值,直到得到最终的预测值。在前向传播过程中,我们按以下步骤进行…

驱动DAY4 字符设备驱动分步注册和ioctl函数点亮LED灯

头文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #d…

一百五十八、Kettle——Kettle各版本及其相关安装包分享(网盘链接,不需积分、不需验证码) 持续更新、持续分享

一、目的 最近因为kettle9.3的shim问题看了好多博客,都没有网盘分享。后来有一位博主分享了kettle9.2的shim安装包,已经很感谢他,但是是博客分享,下载还需要搞验证码下载码之类的。 kettle9.2的shim安装包下载好后,一…

图数据库_Neo4j基于docker服务版安装_Neo4j Desktop桌面版安装---Neo4j图数据库工作笔记0004

然后我们来看看如何用docker来安装Neo4j community server 首先去执行docker pull neo4j:3.5.22-community 去拉取镜像 然后执行命令就可以安装了 可以用docker ps查看一下 看看暴露了哪些端口 然后再看一下访问一下这个时候,要用IP地址了注意 然后再来看一下安装Desktop 去下…