flinksql 使用starrocks connector导入数据 任务偶发报 HTTP 307 'Temporary Redirect'导致作业失败

【详述】使用flinksql connector实时写入数据至starrocks,差不多过个一两天任务就会因为http 307 Temporary Redirect 报错,而导致作业失败;
【背景】源数据是来自车端上报的tbox的明细数据,会发送到kafka,通过flink消费并实时写入starrocks
【业务影响】sr表对外提供实时数据查询业务,任务异常之后业务方无法看到实时数据
【StarRocks版本】starrocks版本2.4.3,flink版本是1.13.5,flink connector版本是 1.2.7
【集群规模】3fe(1 follower+2observer)+ 6be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,具体为:16C/64G/万兆
【表模型】明细模型
【导入或者导出方式】flink starrocks connector导入,flink使用 EXACTLY_ONCE,cp间隔60秒,cp超时300秒,写入sr ‘sink.buffer-flush.interval-ms’ = ‘20000’,
【联系方式】社区群13-依然亦晨 ,邮箱 altenchen@aliyun.com
【附件】

这个报错是最近出现的还是一直都有呢,刚开始出现的时候有做过什么变更吗?be的日志有相关的报错吗

近两个月出现的,flink sink sr的任务不管数据量大小,都会隔三差五的报这个错;除了更改了写入的批次大小,没什么效果,其他的没做过任何变更。

可以找一个近期出现的导入事务:根据flink端的报错,找到相关的一个label,拿这个label到fe leader节点搜下这个事务的完整相关的日志,以及获所有be节点这个label相关的be.INFO日志,我们分析下事务出问题在哪个环节。

也可以考虑在connector可以增加一下这个配置 sink.wait-for-continue.timeout-ms=30000,默认是10000

请问这个有什么解决方案吗?我们最近也遇到这个问题了,和题主场景一样,都是flink写入 starrocks 一天 时不时的来一下这个错误。

  1. 可以看下报错时,fe有没有发生full gc 或者 gc时间较长,一般是fe响应超时
  2. 在 flink connector 可以先改大一下这个配置 sink.wait-for-continue.timeout-ms=30000,默认是10000 观察看看

翻了一下flink日志,有这个错误,是不是就是超时 引起的啊?

body : {

“Status”: “FAILED”,

“Message”: “class com.starrocks.common.UserException: publish timeout: 20000”

}

因用的是公司内容公共平台,我们看不到starrocks 的日志,目前平台人员还在看

publish timeout,实际此时导入事务已经commit了,publish 超时可能是因为短时间内导入比较多,等锁超时,后台会不停重试直到publish成功,publish成功后数据可见可查