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 …...
WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南
WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在W…...
大学生几种职业资格证书有哪些?2026年高含金量考证指南与就业规划
你好呀!👋 看到你在这个时间点搜索关于证书的话题,我完全能理解你的心情。转眼间我们已经步入 2026年,当下的就业环境比起几年前,确实发生了不少变化。我也接触过很多像你一样的同学,大家都有点焦虑&#x…...
嵌套式学习:构建AI持续记忆与知识演化的认知架构
1. 项目概述:什么是“嵌套式学习”?它真能解决AI的健忘症吗? “Nested Learning: The Future of AI That Never Forgets”——这个标题一出现,我就在实验室白板上画了三遍草图。不是因为它多炫酷,而是因为它精准戳中了…...
【设计模式 13】命令:覆水能收
这一课讲命令模式。什么在变:决策需要记录、排队、撤销。怎么挡:把决策封装成命令对象,可执行可回滚。林衍那次决策失误,后来集团内部管它叫"黑色十月"。 起因是赵闯带回来一条消息:一家新晋竞争对手拿到了十…...
taotoken多模型聚合平台为matlab开发者提供稳定ai能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 taotoken多模型聚合平台为matlab开发者提供稳定ai能力 对于使用MATLAB进行数据分析、仿真建模或算法开发的工程师和研究人员而言&a…...
大型SaaS系统数据范围权限设计:从RBAC到动态数据域的实战解析
1. 项目概述:为什么数据范围权限是SaaS的“命门”在SaaS(软件即服务)领域摸爬滚打十几年,我见过太多项目因为早期忽略了数据范围权限这个“小”问题,最终导致架构重构、客户流失甚至数据泄露的“大”事故。一个面向企业…...
ChatGPT高质量输出的隐藏开关:基于IEEE写作标准的11项自动校验清单(附可运行Python验证脚本)
更多请点击: https://kaifayun.com 第一章:ChatGPT高质量输出的底层逻辑与认知前提 ChatGPT生成高质量响应并非依赖“魔法”,而是建立在三个核心支柱之上:大规模语言建模的统计涌现能力、人类反馈强化学习(RLHF&#…...
DeepSeek V2安全对齐能力深度拆解(含对抗攻击测试报告+合规审计清单)
更多请点击: https://codechina.net 第一章:DeepSeek V2安全对齐能力深度拆解(含对抗攻击测试报告合规审计清单) DeepSeek V2 在设计阶段即嵌入多层安全对齐机制,涵盖输入过滤、策略蒸馏、响应重加权与后验校验四大核…...
常用shell命令总结(Linux命令)
当前目录 .上一级目录 …根目录,或者是目录拼接符 /管道符(左侧输出作为右侧输入) |上一个命令的返回码 $?或 ||且 &&cat 查看文档 cat XX.txt加权限 chmod x 文件 chmod 777 文件改变文件的所有者 chown newowner file.txt改变文件…...
从噪音烦恼到静音天堂:Fan Control帮你实现Windows风扇控制的终极自由
从噪音烦恼到静音天堂:Fan Control帮你实现Windows风扇控制的终极自由 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/Git…...
