【详述】flink 导数到starrocks时,2个程序都在同一节点,隔一段时间就会因为这个错误导致导数程序停止,请问该如何去查找问题原因?
【业务影响】
【是否存算分离】存算分离版本 (FE+CN)
【StarRocks版本】3.1.7
【集群规模】例如:1FE+1 CN(fe与be混部)
以下是报错日志:
Caused by: com.starrocks.connector.flink.manager.StarRocksStreamLoadFailedException: Failed to flush data to StarRocks, Error response:
{“Status”:“Fail”,“BeginTxnTimeMs”:0,“Message”:“call frontend service failed, address=TNetworkAddress(hostname=10.xx.x.xx, port=9020), reason=THRIFT_EAGAIN (timed out)”,“NumberUnselectedRows”:0,“CommitAndPublishTimeMs”:0,“Label”:“3e462b01-160b-4721-a003-94482378ab70”,“LoadBytes”:0,“StreamLoadPlanTimeMs”:0,“NumberTotalRows”:0,“WriteDataTimeMs”:0,“TxnId”:-1,“LoadTimeMs”:0,“ReadDataTimeMs”:0,“NumberLoadedRows”:0,“NumberFilteredRows”:0}
call frontend service failed 可能的原因
- fe jvm配置小。
- fe负载过高。
- 数据导入频率过高。
我配置的fe jvm 为 16G,导入频率 30s 一次,机器配置 22C 88G,这种应该不少了吧?
一个FE负责所有的查询和导入任务?
是的,但是导入任务就只有1个,查询频率也不高
FE建议起码3个,3个都是follower角色,起到分摊查询压力和高可用的作用。
可以看下fe.gc日志 GC和FULLGC的情况