19 flink
文章平均质量分 92
flink
教练、我想打篮球
这个作者很懒,什么都没留下…
展开
-
11 flink-sql 中基于 mysql-cdc 连接 mysql-pxc 集群无法获取增量数据问题
问题是来自于 群友, 2024.03.29, 也是花了一些时间 来排查这个问题大致的问题是用 mysql-cdc 连接了一个 mysql-pxc 集群, 然后创建了一个 test_user 表使用 "select * from test_user" 获取数据表的数据, 可以拿到 查询时的快照, 但是 无法获取到后续对于 test_user 表的增量操作的数据, 比如 新增的数据正常连接一个普通的 单点 mysql 是可以正常进行数据同步的也是衍生自此问题然后 可以 先了解一下这个 查询的过程。原创 2024-04-07 08:15:54 · 1225 阅读 · 1 评论 -
10 flink-sql 中基于 mysql-cdc 的 insert into test_user_dst select * from test_user 的实现
这也是最近帮一个朋友看问题 遇到的一个问题然后 引发了一下 对于 flink-sql 里面的一些 常规处理的思考, 理解原始问题主要是 在测试库可以使用 flink-sql 可以正常同步, 但是 在生产环境 无法正常同步数据这个问题 我们后面单独 记录一篇文章建议先看一下核心主干流程是一致的, 只是细节 Sink 这边有一些差异。原创 2024-04-06 08:20:22 · 610 阅读 · 0 评论 -
09 flink-sql 中基于 mysql-cdc 的 select * from test_user 的具体实现
这也是最近帮一个朋友看问题 遇到的一个问题然后 引发了一下 对于 flink-sql 里面的一些 常规处理的思考, 理解原始问题主要是 在测试库可以使用 flink-sql 可以正常同步, 但是 在生产环境 无法正常同步数据这个问题 我们后面单独 记录一篇文章。原创 2024-04-05 09:58:33 · 1086 阅读 · 0 评论 -
08 flink 中出现 “Heartbeat of TaskManager with id localhost:36777-01398c timed out“
问题来自于 某java交流群来自于 做 flink 开发的一位朋友然后 这个问题的排查 也是费了不少的时间, 主要是 他那边经常会去客户现场什么的 造成沟通不便但是 好在最后 问题是解决了主要的业务是从 tdengine 读取一批次数据, 然后进行数据处理, 然后 最后采集一个结果输出到客户端, 都是一些 较为平常的操作。原创 2024-04-04 08:30:47 · 1124 阅读 · 0 评论 -
07 开发环境的代码 和 jar代码不一致的情况产生的问题
操作如下, 这个探讨主要是 基于开发环境, 自己开发相关代码的情况下主要的操作是如下, HelloFlink 项目中 Test01WordCount 修改了 drvier 的代码, 但是并没有重新打包 HelloFlink-0.0.1.jar然后 在 idea 中右键执行 Test01WordCount 之后产生的差异。原创 2024-02-23 09:59:08 · 838 阅读 · 0 评论 -
06 flink 的各个角色的交互
这里主要是 涉及到 flink 中各个角色的交互TaskManager 和 ResourceManager 的交互JobMaster 和 ResourceManager 的交互等等流程。原创 2024-02-22 10:19:14 · 709 阅读 · 0 评论 -
05 Flink 的 WordCount
本文对应于 spark 系列的这里主要是 从宏观上面来看一下 flink 这边的几个角色, 以及其调度的整个流程一个宏观 大局上的任务的处理, 执行基于 一个本地的 flink 集群Test01WordCount.txt 内容如下。原创 2024-02-21 09:19:34 · 1359 阅读 · 0 评论 -
04 local 模式下的 JobGraph 的生成
flink driver 这边将驱动代码处理为 JobGraph的一些流程, 以及处理方式Flink 中使用了很多 异步的处理方式, 因此 代码调试, 还是有一些难度, 然后 但是知道 各个流程的那些关键点 就相对来说 容易一些在 spark 中这个过程为 Job 划分 Stage, 是根据 shuffle 划分的然后 在 flink 这里是根据特定的 operator 将 Job 分解为各个 JobVertex。原创 2024-02-20 09:52:47 · 818 阅读 · 0 评论 -
03 TaskManager 中 old 被全部占用的问题的复现以及调试
然后 在初始化 MyFlatMapMapper 的时候启动了另外一个线程 MyRunnable, 去执行一个耗时的任务, 这个 MyRunnable 的存在的意义在于, 它存活就不能卸载 ChildFirstClassLoader, 进而就不能卸载 其下面归属的 MyFlatMapMapper 进而就不能卸载 MyFlatMapMapper. dummyBytes。我们配置的内存上限是 100M, 每次任务执行占用10M, 因此可以得到的结论是 小于10次 的任务执行, 会产生 OOM。原创 2024-02-19 09:33:34 · 848 阅读 · 0 评论 -
02 记录一次 TaskManager 中 metaspace OOM
这是最近 ky 的 flink 集群上面暴露出现的一个问题具体的细节原因和记录一次 TaskManager 中 old 被全部占用的问题差不多存在一定的内存泄露, 并且由于这边的 TaskManager metadataspace 配置相对较小(MaxMetaspaceSize配置为96M), 然后导致 出现了 metadataspace 的 OOM测试用例模拟的测试用例如下, 这里使用 -ClassUnloading 来模拟 ChildFirstClassloader 内存泄露的场景。原创 2024-02-19 09:32:18 · 885 阅读 · 0 评论 -
01 记录一次 TaskManager 中 old 被全部占用的问题
我们回到 jmap -histo 的结果, 可以找到 35 个 com.HelloWorld.flink.common.ConfigFileObjectService 的 class, 有的有 4 个 instance, 有的有 5个, 有的有 6个。这里我们需要关注的是当前线程是 Flink-DispatcherRestEndpoint-thread-*, 是 jobManager 创建的时候开放 Rest 服务的时候创建的一组线程池, 用于执行 XXHandler 里面的一部分异步处理。原创 2024-02-19 09:31:25 · 838 阅读 · 0 评论