写入starrocks报错Fail to load files.

【详述】通过flink connector写入starrocks报错
具体错误:
{“Status”:“Fail”,“BeginTxnTimeMs”:0,“Message”:“Fail to load files. tablet_id: 4895055, txn_id: 2353607, backends: 10002:100.2.1.211”,“NumberUnselectedRows”:0,“CommitAndPublishTimeMs”:0,“Label”:“58f7a786-a43f-4ba3-a9b3-05d788609789”,“LoadBytes”:853,“StreamLoadPutTimeMs”:0,“NumberTotalRows”:1,“WriteDataTimeMs”:10,“TxnId”:4895055,“LoadTimeMs”:12,“ReadDataTimeMs”:0,“NumberLoadedRows”:1,“NumberFilteredRows”:0}
【背景】使用datastream api 进行表数据写入starrocks
【业务影响】导致flink任务失败
【StarRocks版本】2.3.0-RC01-e14245a
【集群规模】3fe+3be
【机器信息】每机器8C/32G/万兆
【附件】

  • fe.warn.log/be.warn.log/相应截图
  • 慢查询:
    • Profile信息
    • 并行度:show variables like ‘%parallel_fragment_exec_instance_num%’;
    • cbo是否开启:show variables like ‘%cbo%’;
    • be节点cpu和内存使用率截图

不会经常出错,偶尔会爆出这个错误导致任务失败,一旦报错数据修复起来很有挑战,麻烦懂的大神帮忙看一下,谢谢。

sink并发是多少?这个flink任务执行频率是怎样?

写入starrocks时的并发在100到200之间,频率每秒大约写3次。就是说1秒钟最大会有600次对starrocks的写入操作

CPU,内存使用率高吗?

把间隔调大,每次处理的数据多点

插入频率这么高

cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2

be.conf 调整一下这些参数 加快后台数据合并吧

cpu使用不超过50%,内存偏高,高的时候能到96%左右

内存96%是很高,到BE节点
curl -XGET -s http://BE_IP:BE_HTTP_PORT/metrics | grep “^starrocks_be_.*_mem_bytes|^starrocks_be_tcmalloc_bytes_in_use”

报错是出现在内存高的时候吗?

这个目前我还拿不到,要等运维团队回复我

是的,报错的时候内存高

我们的数据不会一直持续高频写入,只在一些场合下做初始化的时候才会

2.可以先查看/proc/sys/vm/overcommit_memory是否配置为1

这个命令返回的是 空,没有东西
不grep,直接返回的内存相关的部分显示的是:

Memory Info

Mem Info: 30.75 GB

Disk Info

Disk Info: 
  Num disks 2: vda, vdb

cat /proc/sys/vm/overcommit_memory
linux系统通常都有的

这个设置的值是0

cat >> /etc/sysctl.conf << EOF
vm.overcommit_memory=1
EOF
sysctl -p

好的感谢!

改善配置:
1)cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2

2)cat >> /etc/sysctl.conf << EOF
vm.overcommit_memory=1
EOF
sysctl -p

还有其他可以尝试的吗?

先试一下,不行再看

好的 谢谢! 预祝国庆快乐!