Flink笔记
下面是你提供的文字整理后的结果:
1. Flink是一个针对流数据和批数据的分布式处理引擎,同时支持原生流处理的开源框架。
- 延迟低(毫秒级),且能够保证消息传输不丢失不重复。
- 具有非常高的吞吐(每秒千万级)。
- 支持原生流处理。
- 容错性高,基于checkpoint机制。
- 处理模型:单条事件处理;Spark Streaming是一个事件窗口内的所有事件。
- 部署相对简单,只依赖JRE环境。
- 应用场景:实时监控(用户行为预警);实时报表(双11直播大屏);实时个性化推荐;数据仓库(实时数据清洗、归并)。
2. 流计算与批计算对比:
- 流式计算实时、低延迟,批量计算非实时、高延迟。
- 流式计算一般针对动态、无边界的数据,批量计算一般针对静态数据。
- 流式计算任务是持续运行的,批量计算任务一次性完成。
3. Flink的核心特性:
- 事件时间:Flink应用程序需要从原始数据中解析出事件时间,并设置给Flink,用于时间窗口计算。
- 灵活的窗口操作。
- 可以处理超出主内存大小限制的数据,减少垃圾收集开销。
- 对象序列化二进制存储。
4. Flink的部署:
- Application:每个Application对应一个Runtime,一个Application中可以包含多个Job。
- JobManager:每个集群至少有一个,负责管理整个集群的计算资源。
- JobManager向ResourceManager申请slot资源。
- TaskManager:每个集群有多个TaskManager,TaskManager通过心跳与JobManager通信,每个TaskManager可以有多个Task slot。
- 单个Slot可以用于一个或多个Task执行,但相同的Task不能在一个Slot中运行。
- Client:执行main方法解析JobGraph对象,并提交给JobManager。
5. Flink的API:
- 开源实现的MapReduce模型,包含三个阶段:Map、Shuffle、Reduce。
- 水位线:用于处理实时数据中的乱序问题,保证在一个特定事件后必须触发窗口进行计算。
- 窗口的触发时机是窗口截至时间<=当前的Watermark。
- 其他特性包括:window Evictor(数据清除器),OutputTag(分流标签),AsyncFunction(异步查询补充数据)。
6. 状态管理:
- Flink中的KeyBy算子根据指定的Key将数据流分区。
- 默认的checkpoint interval为500ms。
- savepoint用于手动触发保存状态数据,用于发版等情况,与checkpoint保存的内容相同。
7. Table API:
- 表的数据存储在catalog中,临时表存储在内存中,永久表存储在外部catalog中,比如Hive Catalog。
8. 其他概念和接口:
- RichParallelSourceFunction:并发数据源。
- CheckpointListener:通知checkpoint完成。
- CheckpointedFunction:定义快照实现。
- ResultTypeQueryable接口:通过输入格式和功能明确告知API返回类型。
- 数据源mq会进行数据分区,在多个Flink并发实例的情况下,并发消费以提高效率。
9. 关于消费者和生产者的速度和消息堆积的问题:
- 消费者的平均速度一定是大于生产者的平均速度,否则会造成消息堆积,mq通过offset来控制消费偏移量,但是还会保存一段时间的历史数据用来消息回溯和查询,一般是7天,保存数据的时候starRocks可以通过排序键做幂等 -算子本身不需要实现CheckpointedFunction的snapshotState方法就能实现State的保存,这是由Flink本身的机制实现的,snapshotState方法会在每次正常checkpoint的时候调用 -Flink本身支持starRocks,并且实现了snapshotState,功能是把缓存的待写入数据库的数据刷盘到starRocks,这样会有问题,就是每次checkpoint的时候都会把数据强制刷盘到数据库,这是一个同步处理,可能会造成写库很慢,消息堆积
相关文章:
Flink笔记
下面是你提供的文字整理后的结果: 1. Flink是一个针对流数据和批数据的分布式处理引擎,同时支持原生流处理的开源框架。 - 延迟低(毫秒级),且能够保证消息传输不丢失不重复。 - 具有非常高的吞吐(每秒千万级)。 - 支持原生流处理。…...

深度学习在MRI运动校正中的应用综述
运动是MRI中的主要挑战之一。由于MR信号是在频率空间中获取的,因此除了其他MR成像伪影之外,成像对象的任何运动都会导致重建图像中产生伪影。深度学习被提出用于重建过程的几个阶段的运动校正。广泛的MR采集序列、感兴趣的解剖结构和病理学以及运动模式&…...
内存不足V4L2 申请DMC缓存报错问题
当内存不足时,V4L2可能存在申请DMA缓存报错,如下日志: 13:36:54:125 [15070.640862] rkcifhw fdfe0000.rkcif: swiotlb buffer is full (sz: 1843200 bytes) 13:36:54:125 [15070.640891] rkcifhw fdfe0000.rkcif: swiotlb: coherent allocation failed, size=1843200 13:3…...

论文笔记--Llama 2: Open Foundation and Fine-Tuned Chat Models
论文笔记--Llama 2: Open Foundation and Fine-Tuned Chat Models 1. 文章简介2. 文章概括3 文章重点技术3.1 预训练Pretraining3.1.1 预训练细节3.1.2 Llama2模型评估 3.2 微调Fine-tuning3.2.1 Supervised Fine-Tuning(FT)3.2.2 Reinforcement Learning with Human Feedback(…...

客达天下项目案例
本资料转载于传智播客https://www.itheima.com/ https://space.bilibili.com/3493265607232348 黑马程序员主办的全日制统招大学——大同互联网职业技术学院 预计2024年开始招生,敬请持续关注! B站视频入口:002_接口项目介绍_哔哩哔哩_bili…...
系统设计类题目汇总二
12 如何在实际的生产者端减少数据库的IO次数? 我自己想到的: 1 对于局部性很强的数据,启用mysql缓存机制,这样就不用磁盘IO 2 对于行数很多的表,可以分库分表,单表的数据量下来了,则查找索引要…...

MySQL和Redis如何保证数据一致性
MySQL与Redis都是常用的数据存储和缓存系统。为了提高应用程序的性能和可伸缩性,很多应用程序将MySQL和Redis一起使用,其中MySQL作为主要的持久存储,而Redis作为主要的缓存。在这种情况下,应用程序需要确保MySQL和Redis中的数据是…...
Go学习第九天
使用sqlite3 package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx"_ "github.com/mattn/go-sqlite3""log""time" )var schema CREATE TABLE perso…...

kafka集成篇
kafka的Java客户端 生产者 1.引入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.6.3</version></dependency>2.生产者发送消息的基本实现 /*** 消息的发送⽅*/ …...
go-安装部署
一、安装go 详细安装方式可以查看官网 # 下载 wget https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz # 解压缩 tar -xzf go1.21.0.linux-amd64.tar.gz # 迁移目录 mv go /usr/local # 配置环境变量 export PATH$PATH:/usr/local/go/bin # 检查go的版本 go version有…...

vue项目的实用性总结
1、mockjs 基本使用 ★ 安装:npm i mockjs。 在src/mock/index.js内容如下: import Mock from mockjs //制订拦截规则 Mock.mock(http://www.0313.com,get,你好啊)记得在main.js中引入一下,让其参与整个项目的运行。 只要发出去的是get类型…...

IOC容器
DI(依赖注入):DI(Dependency Injection)是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器,使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入…...

若依框架浅浅介绍
由若依官网所给介绍可知 1、文件结构介绍 在ruoyi-admin的pom.xml文件中引入了ruoyi-framework、ruoyi-quartz和ruoyi-generatior模块,在ruoyi-framework的pom.xml文件中引入了ruoyi-system模块。 2、技术栈介绍 前端:Vue、Element UI后端:…...

echarts 柱状图-折线图-饼图的基础使用
上图示例图表展示相关配置: var myChart echarts.init(this.$refs.firstMain);myChart.setOption({legend: { // 图例设置top: "15%",type: "scroll",orient: "vertical",//图例列表的布局朝向。left: "right",pageIconCo…...

mac电脑 node 基本操作命令
1. 查看node的版本 node -v2. 查看可安装的node版本 sudo npm view node versions3. 安装指定版本的node sudo n 18.9.04. 安装最新版本node sudo n latest5. 安装最新稳定版 sudo n stable6. 清楚node缓存 sudo npm cache clean -f7. 列举已经安装的node版本 n ls 8. 在…...

Hlang社区项目说明
文章目录 前言Hlang社区技术前端后端 前言 Hello,欢迎来到本专栏,那么这也是第一次做这种类型的专栏,如有不做多多指教。那么在这里我要隆重介绍的就是这个Hlang这个项目。 首先,这里我要说明的是,我们的这个项目其实是分为两个…...

RTC实验
一、RTC简介 RTC(Real Time Clock)即实时时钟,它是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电BCD码,四位二进制表示一位…...
C#多线程报错:The destination thread no longer exists.
WinForm,C#多线程报错: System.ComponentModel.InvalidAsynchronousStateException: An error occurred invoking the method. The destination thread no longer exists. 研究一番,找到了原因: 有问题的写法: ne…...

使用 Visual Studio GoogleTest编写 C/C++ 单元测试——入门篇
入门教程 Visual Studio 新建 GoogleTest项目,一路选默认参数 pch.h #pragma once#include "gtest/gtest.h"int add(int a, int b);pch.cpp #include "pch.h"int add(int a, int b) {return a b; }test.cpp #include "pch.h"TES…...
Linux下TA_Lib安装失败的问题处理
Linux下TA_Lib安装失败的问题处理 TA_Lib是python的量化指标库,其中包含了很多150多种量化指标 ,量化分析中经常使用。 This is a Python wrapper for TA-LIB based on Cython instead of SWIG. From the homepage: TA-Lib is widely used by trading …...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...