Flink随笔 20241203 Flink重点内容
Flink 是一个强大的流处理框架,它的设计理念是高吞吐量、低延迟的流式计算。你提到的这些重点是 Flink 的核心组成部分,下面我将详细解析每一个方面。
1. 窗口(Window)
窗口是 Flink 流处理中一个非常重要的概念,主要用于处理无限流数据。窗口将无限数据流分割成有限大小的数据块,进行计算和处理。Flink 提供了多种类型的窗口:
-
时间窗口(Time Window):
- 滚动窗口(Tumbling Window):窗口的大小是固定的,且无重叠。数据会被固定的时间切割成块,每个块独立处理。
- 滑动窗口(Sliding Window):窗口大小固定,但窗口滑动步长可配置,可以有重叠。每次窗口滑动时,窗口的内容会重新计算。
- 会话窗口(Session Window):窗口大小不是固定的,而是根据事件之间的空闲时间(session gap)来动态调整。当一段时间内没有新数据到来时,当前会话窗口关闭,开启新的窗口。
-
基于计数的窗口(Count-based Window):窗口大小由元素数量决定,而不是时间。
2. 算子(Operator)
算子是 Flink 流处理中的基本操作单元。Flink 提供了多种算子,常见的有:
- Map算子:对流中的每个元素应用一个函数,产生一个新的输出流。
- FlatMap算子:类似于Map算子,但它允许返回零个、一个或多个结果。
- Filter算子:用于根据条件过滤流中的元素。
- KeyBy算子:按照某个字段对流进行分组,相同键的数据会被路由到同一个处理任务中。
- Reduce算子:对流中的数据进行聚合操作,可以是求和、计数、最小值、最大值等。
- Window算子:用于将数据流分割为窗口进行计算(如上面所述)。
- Join算子:支持基于某些键的流间连接,Flink 支持流与流、流与静态数据、静态数据与流的连接。
- Sink算子:将计算结果输出到外部系统,如数据库、消息队列、文件系统等。
3. Checkpoint
Checkpoint 是 Flink 提供的一种容错机制,用于确保流处理作业在发生故障时能够恢复到一致的状态。Flink 通过周期性地将操作的状态保存到持久化存储中实现。
- 启动Checkpoint:Flink 会定期启动Checkpoint,保存当前任务的状态。
- 容错机制:当作业发生故障时,Flink 会从最近的成功的Checkpoint恢复任务状态,保证数据的一致性和处理的正确性。
- 配置:
state.backend:指定状态后端,常用的有rocksdb和memory。checkpoint.interval:Checkpoint 的时间间隔,单位是毫秒。checkpoint.timeout:Checkpoint 超时时间。state.savepoints.dir:用于存储 savepoint 的目录。checkpointing.mode:有两种模式,EXACTLY_ONCE(精确一次)和AT_LEAST_ONCE(至少一次)。checkpointing.externalized:决定是否在作业停止时保留外部保存点。
4. 资源管理
Flink 的资源管理包括 JobManager 和 TaskManager 的管理,它们负责 Flink 集群的资源调度与分配。
-
JobManager:是 Flink 的控制中心,负责管理作业的生命周期,调度作业,处理作业的失败恢复等。每个作业只有一个 JobManager。
- 任务提交、作业调度和故障恢复等都是 JobManager 的职责。
- JobManager 配置:
jobmanager.rpc.address:指定 JobManager 的主机地址。jobmanager.rpc.port:指定 JobManager 的 RPC 端口。jobmanager.heap.size:指定 JobManager 的堆内存大小。jobmanager.execution.failover-strategy:指定作业失败恢复策略。
-
TaskManager:是 Flink 的计算单元,负责执行任务并处理数据。TaskManager 是作业的实际执行者。
- TaskManager 中的每个 Task 是一个并行任务,负责处理 Flink 作业中的一个子任务。
- TaskManager 配置:
taskmanager.memory.process.size:指定 TaskManager 分配给任务的内存大小。taskmanager.numberOfTaskSlots:指定 TaskManager 上可用的任务槽数(并行度)。taskmanager.rpc.port:TaskManager 的 RPC 端口。taskmanager.network.memory.fraction:指定用于网络缓冲的内存比例。
5. JobManager 与 TaskManager 相关配置
Flink 的资源管理与作业执行的能力依赖于 JobManager 和 TaskManager 的配置。通常在 Flink 集群模式下,资源管理是由 YARN、Kubernetes 或 Flink 自带的 standalone 模式来完成的。
- Standalone 模式:在这种模式下,Flink 提供了 JobManager 和 TaskManager 的独立配置,通常部署在不同的节点上。
- YARN 模式:Flink 可以运行在 YARN 上,YARN 管理作业的资源分配,Flink 的资源管理由 YARN 负责。
- Kubernetes 模式:Flink 也可以运行在 Kubernetes 上,Kubernetes 提供了资源调度与管理。
6. Flink 集群模式
Flink 支持多种集群部署模式:
- Standalone模式:Flink 运行在独立集群上,JobManager 和 TaskManager 通常分别部署。
- YARN模式:Flink 可以在 Hadoop YARN 集群上运行,利用 YARN 的资源管理能力。
- Kubernetes模式:Flink 可以部署在 Kubernetes 上,利用 Kubernetes 的资源管理能力。
配置总结
-
TaskManager 和 JobManager 的内存和并行度配置
- 通过
taskmanager.memory.process.size和taskmanager.numberOfTaskSlots来配置 TaskManager 的内存和任务槽数。 jobmanager.heap.size和jobmanager.rpc.address配置 JobManager 的内存大小和主机地址。
- 通过
-
JobManager 的调度策略
- 通过
jobmanager.execution.failover-strategy来配置作业失败后的恢复策略(如自动重启)。
- 通过
-
Checkpoint 配置
- 通过
checkpoint.interval来配置Checkpoint的周期,state.backend来指定状态后端。
- 通过
通过对这些配置的合理调整,Flink 可以根据不同的业务需求提供高效、容错、可扩展的流式计算服务。希望这些解析能帮助你更好地理解 Flink 的核心概念。
相关文章:
Flink随笔 20241203 Flink重点内容
Flink 是一个强大的流处理框架,它的设计理念是高吞吐量、低延迟的流式计算。你提到的这些重点是 Flink 的核心组成部分,下面我将详细解析每一个方面。 1. 窗口(Window) 窗口是 Flink 流处理中一个非常重要的概念,主要…...
shell脚本实战
学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。 笔记只是方便学习,以下内容只涉及学习内容,切莫逾越法律红线。 安全见闻,包含了各种网络安全,网络技术,旨在明白自己的渺小,知识的广博&a…...
【机器学习】分类任务: 二分类与多分类
二分类与多分类:概念与区别 二分类和多分类是分类任务的两种类型,区分的核心在于目标变量(label)的类别数: 二分类:目标变量 y 只有两个类别,通常记为 y∈{0,1} 或 y∈{−1,1}。 示例ÿ…...
FreeSWITCH mod_conference 的按键会控
又是一篇命题作文 mod_conference 官方文档: https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Modules/mod_conference_3965534/ 英文不好的可以看中文: http://www.freeswitch.org.cn/books/references/1.7-mod_conference.html…...
串口工作方式
串口工作方式 方式0方式0输出方式0输入 方式1方式1输出方式1输入 方式2或方式3输出输入 串口使用方法如何计算波特率串口初始化步骤串口回传实验模拟printf实验串口接收数据不丢失实验 方式0 方式 0 时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输 入…...
统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现。以下是一些常见的方法和步骤: 一、通过命令行工具统计 查看Nginx访问日志: Nginx的访问日志通常默认存储在/var/log/nginx/access.log,但具体位置可能因安装和配置…...
Apache Airflow 快速入门教程
Apache Airflow已经成为Python生态系统中管道编排的事实上的库。与类似的解决方案相反,由于它的简单性和可扩展性,它已经获得了普及。在本文中,我将尝试概述它的主要概念,并让您清楚地了解何时以及如何使用它。 Airflow应用场景 …...
42 基于单片机的智能浇花系统
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采样DHT11温湿度传感器检测温湿度,通过LCD1602显示 4*4按键矩阵可以设置温度湿度阈值,温度大于阈值则开启水泵,湿度大于阈值则开启风扇…...
乐橙云小程序插件接入HbuilderX
乐橙插件使用: 1.配置app.json文件,uniapp中在mainfest.json中配置 https://uniapp.dcloud.net.cn/collocation/manifest.html#mp-weixin ** 2、集成插件页面.json文件 ** uniapp在 pages.json 对应页面的 style -> usingComponents 引入组件&…...
VoCo-LLaMA: Towards Vision Compression with Large Language Models
视觉语言模型在各种多模态任务上取得了显著的成功,但经常受到有限上下文窗口和处理高分辨率图像输入和视频的高计算成本的瓶颈。视觉压缩可以通过减少视觉令牌数量避免该问题。先前方法使用额外模块压缩视觉令牌并强制LLM理解压缩的令牌。然而,LLM对视觉…...
Vue+vite 组件开发的环境准备
一.nodejs安装 进入Node.js 官网(Node.js — Run JavaScript Everywhere),点击下载。 双击打开,进行安装 双击打开后,点击 next(下一步),后面也是一直点击 next 无其他设置,直到 …...
基于社区发现的GraphRAG思路
GraphRAG出自2024年4月的论文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》,其代码也在2024年年中开源 。它在用图结构来完成RAG时,使用社区这个概念并基于社区摘要来回答一些概括性的问题。 Graph RAG流程如论文图1所…...
react学习记录
一、目录结构react优秀代码之react目录结构简洁之道React 作为一个库,不会决定你如何组织项目的结构。这是件好事,因为这样 - 掘金【React】项目的目录结构全面指南_react项目结构-CSDN博客 1、创建项目:开发文档 Getting Started | Create…...
Day2——需求分析与设计
教师端签到应用软件的需求分析; 产品经理如何写好产品需求文档(附模板) 需求分析是软件开发过程中的关键步骤,它确保了开发的软件能够满足用户的需求。以下是进行需求分析的具体步骤: 1. 确定分析目标 明确教师端签到…...
VScode离线下载扩展安装
在使用VScode下在扩展插件时,返现VScode搜索不到插件,网上搜了好多方法,都不是常规操作,解决起来十分麻烦,可以利用离线下载安装的方式安装插件!亲测有效!!! 1.找到VScod…...
【机器学习】机器学习的基本分类-监督学习-决策树(Decision Tree)
决策树是一种树形结构的机器学习模型,适用于分类和回归任务。它通过一系列基于特征的条件判断来将数据分割为多个子区域,从而预测目标变量的值。 1. 决策树的结构 根节点(Root Node) 决策树的起点,包含所有样本。根据某…...
【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤
目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步:定义程序的目标 1.8.2 第 2 步:设计程序 1.8.3 第 3 步:编写代码 1.8.4 第 4 步:编译 1.8.5 第 5 步:运行程序 1.8.6 第 6 步:测试和调试程序 1.8.…...
Docker 使用 Dockerfile 文件打包部署前端项目
编写 Dockerfile 文件: FROM nginx:latest ADD dist /etc/nginx/html/dist COPY nginx.conf /etc/nginx/nginx.conf ENV PATH /usr/sbin:$PATH EXPOSE 80 ENTRYPOINT ["nginx"] CMD ["-g","daemon off;"]编写 nginx.conf 文件&#…...
HTML-全
. CSS css后缀名的文件被html引用 在HTML中,CSS(层叠样式表,Cascading Style Sheets)是一种用于设置网页上的文本内容、图片布局和版面设计等外观样式的样式表语言。简单来说,CSS定义了HTML元素如何显示在浏览器中。…...
高效流程图绘制:开发设计流程图利器
在选择画流程图的工具时,不同的项目和使用场景会决定最佳的工具。以下是几款常见的流程图工具,并结合具体项目使用场景提供建议: 1. Lucidchart 特点: 在线协作:支持多人实时协作,适合团队合作。模板丰富&…...
诺和新元在华两大重点项目在天津和太仓竣工启用 | 美通社头条
美通社消息:近日,全球领先的生物解决方案合作伙伴诺和新元(Novonesis)分别在天津经济技术开发区(TEDA)与江苏太仓举行重点项目竣工启用活动。诺和新元天津经开区项目竣工启用活动天津新行政办公楼项目是诺和新元在华运营体系的重要升级。本次项目的落成不…...
AI Agent在政务审批系统中的零故障部署实践(工信部试点项目全链路复盘)
更多请点击: https://codechina.net 第一章:AI Agent在政务审批系统中的零故障部署实践(工信部试点项目全链路复盘) 在工信部“智能政务基础设施升级”试点项目中,某省政务服务网完成全国首个面向全流程审批闭环的AI …...
【Midjourney饱和度调控黄金法则】:20年AI视觉调校专家亲授3类典型过曝/灰暗场景的7步精准校正流程
更多请点击: https://codechina.net 第一章:Midjourney饱和度调控的核心原理与认知重构 Midjourney 的饱和度(Saturation)并非独立控制的图像参数,而是嵌套于其隐式色彩空间映射与扩散过程中的动态响应变量。它由模型…...
五轴联动机床:什么叫真正做出来了,什么叫组装贴牌
机床厂的数量从来不是问题。打开任何一份机床企业名录,数以千计的厂商密密麻麻排在那里,官网上都写着"五轴联动"“高精度数控”“航空级加工”。但做五轴联动整机与自主数控系统的工厂,放到整个行业里只是极小的一部分;…...
书匠策AI降重降AIGC实测:论文圈的“消音器“到底有多猛?官网www.shujiangce.com深度拆解
各位还在论文泥潭里挣扎的宝子们,今天这期内容可能会让你少熬三个通宵。 我最近收到最多的私信就是:"博主,我查重42%,AIGC检测28%,导师说再改不过就延毕,怎么办?"说实话,…...
实际开发中 SQL 与产品的耦合与互动实践
引言 在产品开发初期,数据库 Schema(表结构)的设计是一个绕不开的核心问题。很多开发者,尤其是新手,常常会陷入一个两难境地:“Schema 需要一开始就完全确定好吗?如果后期要改动怎么办?到底要设计多少个表(Schema 数量)才算合适?” 这些问题背后,反映的是对软件工…...
认知殖民的几何级放大器:论概率拟合AI范式的内生危机、利益锁定与公理驱动的范式跃迁
认知殖民的几何级放大器:论概率拟合AI范式的内生危机、利益锁定与公理驱动的范式跃迁 摘要 当前,以大语言模型为核心的生成式人工智能掀起全球技术热潮,“涌现特性”“通用人工智能”等概念持续主导行业舆论与研发风向。然而剥离技术表象与…...
FlashAttention的水印攻击:怎么知道你的模型被偷用或篡改了?
之前有个公司发现,他们的Llama-2-7B模型被人克隆了一份,部署在了另一个云服务上。巧的是,那个克隆模型的输出跟他们的一模一样——连生成风格都一样。 他们去查代码,发现对方的代码里也用了npu_flash_attention。他们想知道&…...
投影仪的分辨率不高,仅为1024*768的分辨率,而笔记本电脑2560×1600(2.5K)分辨率。——如果采用扩展屏复制笔记本电脑分辨率,发现那个投影仪投影出的字很小,且看不清。 将笔记本电脑的
投影仪的分辨率不高,仅为1024*768的分辨率,而笔记本电脑25601600(2.5K)分辨率。——如果采用扩展屏复制笔记本电脑分辨率,发现那个投影仪投影出的字很小,且看不清。 将笔记本电脑的分辨率也改为1024*768的分辨率,投影仪字体大小会放大才看的清楚,但是软件无法全部显…...
FactoryBluePrints终极指南:戴森球计划蓝图库助你轻松建造完美工厂
FactoryBluePrints终极指南:戴森球计划蓝图库助你轻松建造完美工厂 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否曾在戴森球计划中为复杂的工厂布局而头…...
