【详述】FlinkCDC数据到 StarRocks报NullPointerException
【背景】CDC任务上线一段时候后挂了,看异常时空指针异常?
【业务影响】
【StarRocks版本】例如:2.5.0
【集群规模】例如:3fe(1 follower+2observer)+3be(fe与be独立部署)
【机器信息】4C/16G/万兆
【表模型】主键模型
【导入方式】例如:Flink-CDC
【联系方式】18797910920
【附件】
FlinkCDC错误日志
flinkCDC日志.log (670.4 KB)
flink-connector版本:
<dependency>
<groupId>com.starrocks</groupId>
<artifactId>flink-connector-starrocks</artifactId>
<version>1.2.6_flink-1.14_2.11</version>
</dependency>
"Message": "Couldn't open transport for 10.0.0.250:9020 (socket open() error: Connection refused)",
网络通吗?
网络没问题的,看原因是 BE节点那个时候挂了。现在在排除BE挂了的原因
是一直不行还是偶现
只要有一个BE节点挂了,就立马出现
flink也是基于协调节点(随机一个BE上),如果有一个BE crash,刚好flink任务在这个协调节点上,就会报错,重试就ok,他会派到另一个BE来做协调节点。
实际是我的 flink任务配置了失败重启策略,但是实际运行过程中任务会直接挂掉。看日志,它会一直去尝试操作挂掉的节点,然后尝试 3次都失败后任务就挂掉了。
下面是配置的失败重启策略:
env.setRestartStrategy(RestartStrategies.failureRateRestart(3, Time.of(10, TimeUnit.MINUTES), Time.of(1, TimeUnit.MINUTES)));// 10分钟内最多重启 3次,重启间隔时间:1分钟
目前已经解决了 BE宕机的问题,所以暂时没触发这个问题了。