写入StarRocks报错close index channel
本文介绍写入 StarRocks 时发生 close index channel 异常处理办法。
简述
写入 StarRocks 时发生 close index channel 异常,任务日志堆栈堆栈如下:
Caused by: java.lang.RuntimeException: Failed to flush data to StarRocks, Error response: {"Status":"Fail","BeginTxnTimeMs":0,"Message":"close index channel failed,load_id=8742fa5d-3ab6-7fe5-6615-35c50e90d488","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"ffbeed8c-01c6-46df-a4be-c1e4742c6fb3","LoadBytes":20871,"StreamLoadPutTimeMs":1,"NumberTotalRows":0,"WriteDataTimeMs":3,"TxnId":1540574,"LoadTimeMs":4,"ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0} {}
这个问题一般是由于导入数据过于频繁,StarRocks 来不及 compaction 导致,可以通过以下步骤解决。
步骤
- 首先查看 StarRocks 配置,修改 StarRocks be.conf 配置文件中的参数, 提升 compaction 能力,配置示例如下:
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2 - 如果在全量同步阶段提示这个报错,也可通过调整 CloudCanal 一批写入大小解决问题,方法如下:
- 调大 CloudCanal 参数 fullBatchSize、fullRingBufferSize,需要注意过大可能导致迁移进程 OOM
- 调大 CloudCanal 参数 fullBatchWaitTimeMs ,以增加全量写入停顿时间, 推荐 1~10 秒
- 如果在增量阶段提示这个错误,也可通过调整CloudCanal一批写入大小解决问题,方法如下:
- 调大 CloudCanal 参数 increBatchSize、increRingBufferSize,同样需要注意过大可能导致同步进程 OOM
- 调大 CloudCanal 参数 increBatchWaitTimeMs ,以增加增量写入停顿时间,推荐 1~10 秒
- 如果上述步骤无法自助解决问题,请加群提问,请描述问题背景并提供报错日志或截图。