Flink消费OB表的问题

【 测试环境 】生产环境 or 测试环境
【 OB 】
【 4.2.1】
【问题描述】
通过flink oceanbase cdc监听ob的全量表时,读取完数据后任务会转为FINISHED状态,这个合理么,不是应该是RUNNING状态么

用的 flink cdc 是哪个版本的?正常情况下增量数据读取是长期任务,不会自动结束的,可以看下日志确认下有没有异常,或者试下从指定时间启动。

用的开发分支,


从oblogproxy看不太出来断开的原因,flink那边的日志也一样

客户端有没有什么状况下的连接断开机制啥的呢

logproxy 服务是不会关闭 logproxy 客户端连接的,客户端只有在出现异常或者主线程退出时才会主动关闭连接。

麻烦提供下 flink 任务的日志看看?还有 logproxy 的日志您看的是 run/${client_id} 目录下的吗?

flink日志全程没有一点异常。只有 run/${client_id}会报Duplication exist clientId这个问题,但是这个id是唯一的 为啥会重复

两种可能:

  1. 之前的任务有异常重启,重启的时候上一次的连接没有正常断开。这种情况只能把原来的logreader进程杀掉,然后重新创建flink任务
  2. client id 如果没有指定,默认是时间+租户,如果同时启动多个同租户的任务可能会重复。这种情况可以手动指定client id来避免。

这两个现象都没有呢?

那就要继续从 logproxy 的日志里找原因了,其他可能的原因有内存不足、磁盘满、网络不稳定等等,需要根据日志打印的情况来定位。

有没有可能是线程并发导致的

目前实现的 OceanBaseRichSourceFunction 是不会同时启动多个任务的,增量部分的 LogProxyClient 除了异常重试的情况也只会启动一个。

什么情况下,任务异常退出没有清理连接,感觉还挺常见的


这类报错是为啥