当前位置: 首页 > news >正文

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笔记

下面是你提供的文字整理后的结果&#xff1a; 1. Flink是一个针对流数据和批数据的分布式处理引擎&#xff0c;同时支持原生流处理的开源框架。 - 延迟低(毫秒级)&#xff0c;且能够保证消息传输不丢失不重复。 - 具有非常高的吞吐(每秒千万级)。 - 支持原生流处理。…...

深度学习在MRI运动校正中的应用综述

运动是MRI中的主要挑战之一。由于MR信号是在频率空间中获取的&#xff0c;因此除了其他MR成像伪影之外&#xff0c;成像对象的任何运动都会导致重建图像中产生伪影。深度学习被提出用于重建过程的几个阶段的运动校正。广泛的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年开始招生&#xff0c;敬请持续关注&#xff01; B站视频入口&#xff1a;002_接口项目介绍_哔哩哔哩_bili…...

系统设计类题目汇总二

12 如何在实际的生产者端减少数据库的IO次数&#xff1f; 我自己想到的&#xff1a; 1 对于局部性很强的数据&#xff0c;启用mysql缓存机制&#xff0c;这样就不用磁盘IO 2 对于行数很多的表&#xff0c;可以分库分表&#xff0c;单表的数据量下来了&#xff0c;则查找索引要…...

MySQL和Redis如何保证数据一致性

MySQL与Redis都是常用的数据存储和缓存系统。为了提高应用程序的性能和可伸缩性&#xff0c;很多应用程序将MySQL和Redis一起使用&#xff0c;其中MySQL作为主要的持久存储&#xff0c;而Redis作为主要的缓存。在这种情况下&#xff0c;应用程序需要确保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 基本使用 ★ 安装&#xff1a;npm i mockjs。 在src/mock/index.js内容如下&#xff1a; import Mock from mockjs //制订拦截规则 Mock.mock(http://www.0313.com,get,你好啊)记得在main.js中引入一下&#xff0c;让其参与整个项目的运行。 只要发出去的是get类型…...

IOC容器

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

若依框架浅浅介绍

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

echarts 柱状图-折线图-饼图的基础使用

上图示例图表展示相关配置&#xff1a; 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,欢迎来到本专栏&#xff0c;那么这也是第一次做这种类型的专栏&#xff0c;如有不做多多指教。那么在这里我要隆重介绍的就是这个Hlang这个项目。 首先&#xff0c;这里我要说明的是&#xff0c;我们的这个项目其实是分为两个…...

RTC实验

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

C#多线程报错:The destination thread no longer exists.

WinForm&#xff0c;C#多线程报错&#xff1a; System.ComponentModel.InvalidAsynchronousStateException: An error occurred invoking the method. The destination thread no longer exists. 研究一番&#xff0c;找到了原因&#xff1a; 有问题的写法&#xff1a; ne…...

使用 Visual Studio GoogleTest编写 C/C++ 单元测试——入门篇

入门教程 Visual Studio 新建 GoogleTest项目&#xff0c;一路选默认参数 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的量化指标库&#xff0c;其中包含了很多150多种量化指标 &#xff0c;量化分析中经常使用。 This is a Python wrapper for TA-LIB based on Cython instead of SWIG. From the homepage: TA-Lib is widely used by trading …...

从零上手FinalShell:Windows环境下的高效SSH连接与服务器管理实战

1. FinalShell是什么&#xff1f;为什么选择它&#xff1f; 如果你是Windows用户&#xff0c;第一次接触服务器管理&#xff0c;可能会被各种专业工具吓到。XShell虽然强大但收费&#xff0c;Putty又太简陋&#xff0c;这时候FinalShell就像个贴心的助手。我用了三年多&#xf…...

ai辅助开发:借助快马平台ai模型打造智能自适应的openclaw chrome数据抓取插件

今天想和大家分享一个最近用AI技术增强网页数据抓取效率的实践——开发一个叫OpenClaw的智能Chrome插件。这个插件的特别之处在于&#xff0c;它不仅能抓取数据&#xff0c;还能通过AI理解网页结构&#xff0c;自动适应不同网站&#xff0c;大大减少了手动编写抓取规则的工作量…...

MobaXterm许可证生成器:终极免费解决方案快速解锁专业功能

MobaXterm许可证生成器&#xff1a;终极免费解决方案快速解锁专业功能 【免费下载链接】MobaXterm-keygen A keygen for MobaXterm 项目地址: https://gitcode.com/gh_mirrors/mo/MobaXterm-keygen 还在为MobaXterm专业版的高昂费用而犹豫吗&#xff1f;MobaXterm-keyge…...

TransCAD新手必看:如何用表格链接快速创建矩阵OD并生成期望线(附详细步骤图)

TransCAD实战指南&#xff1a;从表格链接到期望线可视化的全流程解析 引言 在交通规划与空间分析领域&#xff0c;TransCAD作为一款专业的GIS软件&#xff0c;其强大的数据处理和可视化能力一直备受推崇。对于初学者而言&#xff0c;掌握表格链接创建矩阵OD并生成期望线的技巧&…...

魔法方法 __init__ 与 __new__ 的区别与使用场景

前言在 Python 中&#xff0c;魔法方法&#xff08;也叫特殊方法&#xff09;以双下划线开头和结尾&#xff0c;例如 __init__、__new__、__str__ 等。它们赋予了类许多“隐形”的能力&#xff0c;让我们能够像操作内置类型一样操作自定义对象。当谈到对象创建时&#xff0c;__…...

win10深度清理c盘工具推荐:从更新缓存到微信专清

普通的垃圾清理已经无法满足需求&#xff1f;当C盘空间告急&#xff0c;那些隐藏在系统深处和应用角落的“顽固分子”——比如Windows更新旧文件、微信数GB的聊天缓存——才是真正需要对付的目标。深度清理&#xff0c;就是要对这些难以触及的领域进行精准打击。深度清理的目标…...

保姆级教程:在CompactLogix 5380上配置AB_Socket_TCP库,实现断线重连与自动收发

工业级TCP通信实战&#xff1a;CompactLogix 5380双IP配置与AB_Socket_TCP库深度应用 在工业自动化领域&#xff0c;稳定可靠的通信系统如同生产线的神经系统。当一台CompactLogix 5380控制器需要7x24小时不间断地与上位机、传感器网络或第三方设备交换数据时&#xff0c;传统的…...

从真题到实战:拆解CCF-GESP C++三级核心考点与避坑指南

1. 数据编码&#xff1a;从ASCII到UTF-8的实战解析 在CCF-GESP C三级考试中&#xff0c;数据编码是必考的核心知识点。很多同学第一次接触这个概念时容易懵圈——不就是存个字符吗&#xff0c;怎么还有这么多门道&#xff1f;其实理解编码就像学外语&#xff0c;ASCII是基础英语…...

AI 开发实战:质量门禁怎么设计,才不会让流程只剩形式

AI 开发实战&#xff1a;质量门禁怎么设计&#xff0c;才不会让流程只剩形式 一、这个问题为什么值得专门拿出来做&#xff1f; 在 AI 工程落地里&#xff0c;真正拖慢团队的往往不是模型本身&#xff0c;而是流程和协作方式没有跟上。 围绕“质量门禁怎么设计&#xff0c;才不…...

中兴光猫配置解密工具:3步解锁家庭网络自主权

中兴光猫配置解密工具&#xff1a;3步解锁家庭网络自主权 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否曾经因为无法修改光猫配置而感到束手无策&#xff1f;当网…...