跳到主要内容

写入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 导致,可以通过以下步骤解决。

步骤

  1. 首先查看 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
  2. 如果在全量同步阶段提示这个报错,也可通过调整 CloudCanal 一批写入大小解决问题,方法如下:
    • 调大 CloudCanal 参数 fullBatchSizefullRingBufferSize,需要注意过大可能导致迁移进程 OOM
    • 调大 CloudCanal 参数 fullBatchWaitTimeMs ,以增加全量写入停顿时间, 推荐 1~10 秒
  3. 如果在增量阶段提示这个错误,也可通过调整CloudCanal一批写入大小解决问题,方法如下:
    • 调大 CloudCanal 参数 increBatchSizeincreRingBufferSize,同样需要注意过大可能导致同步进程 OOM
    • 调大 CloudCanal 参数 increBatchWaitTimeMs ,以增加增量写入停顿时间,推荐 1~10 秒
  4. 如果上述步骤无法自助解决问题,请加群提问,请描述问题背景并提供报错日志或截图。