随笔分类 -  Flink

摘要:1、现象 在Iceberg数据湖治理过程中发现,同步任务运行7天没有写入数据,运行7天后突然大批量产生Commit,一秒产生一个Commit。 2、问题 Flink写入checkpoint时会在checkpoint中先记录一个递增id, commit后会在Iceberg表中记录一个递增commit 阅读全文
posted @ 2025-01-07 15:17 Robots2 阅读(31) 评论(0) 推荐(0)
摘要:一、问题背景 数据对比程序发现通过Flink cdc同步mysql写入Iceberg表运行一段时间后存在丢数问题,排查到丢数是由于hivemetastore钩子函数缺陷引起,由腾讯云EMR修复 钩子函数作用:在查询表时,更新hivemetastore中表的最近访问时间 产生丢数的原因:因钩子函数需要 阅读全文
posted @ 2024-11-22 18:41 Robots2 阅读(158) 评论(0) 推荐(0)
摘要:一、获取任务信息 任务id:i01f51582-d8be-4262-aefa-000000 任务名称:ods_test1234 丢失的数据时间:2024-09-16 09:28:47 二、数据同步查看日志 1、筛选日志 筛选2024-09-16 09:28:47 的前后5分钟后数据 2、查找快照id 阅读全文
posted @ 2024-09-19 10:20 Robots2 阅读(179) 评论(0) 推荐(0)
摘要:一、问题描述 用户配置了高级参数很多,观察kafka增量数据不多,flink负载不高情况下两个checkpoint后才可查询到数据。 排查时hdfs有数据文件产生,但是mainfast文件中最新快照id没变化。 二、原因 经腾讯排查,用户参数指定高级参数execution.checkpointing 阅读全文
posted @ 2024-05-17 14:45 Robots2 阅读(174) 评论(0) 推荐(0)
摘要:一、如何做一致性保障 1、全量数据分片读取,增量数据单并发读取,保证增量阶段不会乱序2、全量阶段写入失败会清空表后重新写入,避免重复数据。3、全量阶段多task并行读取,把每个task开始结束时间提交给Flink Coordinator,由Coordinator做时间合并后,仅读取一次全量同步区间内 阅读全文
posted @ 2024-05-14 10:41 Robots2 阅读(90) 评论(0) 推荐(0)
摘要:一、背景 腾讯Flink使用 KafkaSource API创建source端,源码中默认开启了checkpoint的时候提交offset 到kafka-broker。读取kafka数据写入到iceberg 目前发现一个问题,就是消费数据的时候,消费一段时间后,kafka-group的 offset 阅读全文
posted @ 2024-04-25 15:05 Robots2 阅读(575) 评论(0) 推荐(0)
摘要:Apache Flink 的 Change Data Capture (CDC) 功能主要用于实时捕获数据库中的变更记录,并将其转换为事件流以供下游处理。为了保证全量和增量数据同步时数据的一致性、不丢失和不重复读取,Flink CDC 采用了以下策略: 一、保证一致性与不丢失 1、使用事务 当进行全 阅读全文
posted @ 2024-04-25 10:25 Robots2 阅读(2759) 评论(0) 推荐(0)
摘要:为了防止消息重复消费导致业务处理异常,消息队列RocketMQ版的消费者在接收到消息后,有必要根据业务上的唯一Key对消息做幂等处理。本文介绍消息幂等的概念、适用场景以及处理方法。 什么是消息幂等 当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务 阅读全文
posted @ 2024-04-25 09:29 Robots2 阅读(51) 评论(0) 推荐(0)
摘要:一、背景 1、遇到问题描述 通过Flink同步mysql到iceberg中,任务一直在运行中,但是在目标表看不到数据。经排查发现job manager一直在做切片工作,切了一小时还没开始同步数据,日志如下: 2023-12-28 16:58:36.251 [snapshot-splitting] I 阅读全文
posted @ 2023-12-28 17:18 Robots2 阅读(1228) 评论(0) 推荐(0)
摘要:一、mysql数据准备 mysql -hip -uroot -p密码 CREATE DATABASE flink; USE flink; CREATE TABLE user ( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(255) NOT NULL D 阅读全文
posted @ 2023-10-30 10:16 Robots2 阅读(80) 评论(0) 推荐(0)
摘要:1、当使用flink提交一个任务,没有给算子设置并行度情况下,默认所有算子会chain在一起,整个DAG图只会显示一个算子,虽然有利于数据传输,提高程序性能,但是无法看到数据的输入和疏忽,业绩反压相关指标。 2、在api开发任务中,可以使用disableChaining方法打算operatorCha 阅读全文
posted @ 2023-08-03 11:27 Robots2 阅读(1297) 评论(0) 推荐(0)
摘要:一、处理函数简介 在底层,我们可以不定义任何具体的算子(比如 map,filter,或者 window),而只是提炼出一个统一的“处理”(process)操作——它是所有转换算子的一个概括性的表达,可以自定义处理逻辑,所以这一层接口就被叫作“处理函数”(process function)。在处理函数 阅读全文
posted @ 2023-06-08 11:00 Robots2 阅读(1242) 评论(0) 推荐(0)
摘要:一、摘要 如果想使用Flink,Flink的Watermark是很难绕过去的概念。本文帮大家梳理Watermark概念 二、Watermark疑问 1、Flink应用的常见需求是什么 如公司运营一个官网,想统计下过去一分钟有多少用户访问官网。 如果使用Flink开发,来一条数据则计算一条也是可以的。 阅读全文
posted @ 2023-05-24 16:03 Robots2 阅读(250) 评论(0) 推荐(0)
摘要:一、 二、常见问题排查 1、数据反压 背压(Backpressure)机制排查 点击JobName 点击某个算子 点击Backpressure查看,状态为HIGH时,则存在数据反压问题 注:若流程为A->B->C->D->E->F ,BCDEF出现反压(即这里status为high),则表示A处理流 阅读全文
posted @ 2022-09-09 18:05 Robots2 阅读(2286) 评论(0) 推荐(1)
摘要:一、JobManager内存 JobManager 是 Flink 集群的控制单元。 它由三种不同的组件组成:ResourceManager、Dispatcher 和每个正在运行作业的 JobMaster。 配置 JobManager 内存最简单的方法就是进程的配置总内存。 本地执行模式下不需要为 阅读全文
posted @ 2022-09-09 17:22 Robots2 阅读(199) 评论(0) 推荐(0)
摘要:一、分类 1.1 事件时间:EventTime 事件发⽣的时间 事件时间是每个单独事件在其产⽣进程上发⽣的时间,这个时间通常在处理的消息体中,如创建时间 在事件时间中,时间值 取决于数据产⽣记录的时间,⽽不是任何Flink机器上的 1.2 进⼊时间:IngestionTime 事件到进⼊Flink 阅读全文
posted @ 2022-03-27 22:04 Robots2 阅读(178) 评论(0) 推荐(0)
摘要:一、依赖 二、代码 package net.xdclass.class11; import java.util.List; import java.util.stream.Collectors; import org.apache.commons.collections.IteratorUtils; 阅读全文
posted @ 2022-03-27 20:49 Robots2 阅读(83) 评论(0) 推荐(0)
摘要:一、依赖 二、代码 package net.xdclass.class11; import java.util.List; import java.util.stream.Collectors; import org.apache.commons.collections.IteratorUtils; 阅读全文
posted @ 2022-03-27 20:47 Robots2 阅读(172) 评论(0) 推荐(0)
摘要:一、依赖 二、代码 package net.xdclass.class11; import org.apache.flink.api.common.RuntimeExecutionMode; import org.apache.flink.api.common.functions.Aggregate 阅读全文
posted @ 2022-03-27 20:47 Robots2 阅读(70) 评论(0) 推荐(0)
摘要:一、依赖 https://www.cnblogs.com/robots2/p/16048648.html 二、代码 概念:窗口来多少条计算一次,存在滚动和滑动两种情况 package net.xdclass.class10; import org.apache.flink.api.common.Ru 阅读全文
posted @ 2022-03-27 17:34 Robots2 阅读(170) 评论(0) 推荐(0)