【详述】用datax进行导入数据,有时会发现导入数据突然卡住了,发现报错{“Status”:“Fail”,“BeginTxnTimeMs”:0,“Message”:“Commit failed. txn: 3358981 table: receiptdetailbigdata tablet: 27552 quorum: 0<1 errorReplicas: 155344:{be:153809 xxx.xxx.xxx.xxx st:NORMAL V:8848 LFV:8849},138853:{be:137158 xxx.xxx.xxx.xxx st:DECOMMISSION V:8849 LFV:-1}, commitBackends: [153809]”,“NumberUnselectedRows”:0,“CommitAndPublishTimeMs”:0,“Label”:“0829c4a2-5337-4bae-bf57-ed459d81fc9a”,“LoadBytes”:5244898,“StreamLoadPlanTimeMs”:7,“NumberTotalRows”:1135,“WriteDataTimeMs”:127,“TxnId”:3358981,“LoadTimeMs”:141,“ReadDataTimeMs”:2,“NumberLoadedRows”:1135,“NumberFilteredRows”:0}。集群状态是正常的,BE服务也是正常的,就是个别的Tablet状态是DECOMMISSION,导致无法写入数据
【背景】datax进行导入数据,由于存储原因,所有的表只设置了一个副本。开始是2个BE,后来又加了两个个BE,难道和添加BE服务,负载均衡后元数据获取的不对有关系?
【业务影响】写入数据失败
【是否存算分离】否
【StarRocks版本】3.1.14
【集群规模】3fe(3 follower)+4be(fe与be分开部署)
【机器信息】16C/64G/万兆
检查一下对应报错表的tablet版本是否正常。
建议采用多副本模式,避免因某个副本异常导致的表不可用
版本是正常的,我感觉扩容BE节点和导数据有冲突导致,应该是Bug吧,实际Tablet已经转移在其他节点上了,当前节点Tablet应该正常下线才对,但是Starrocks还认为它还属于这个节点,但是状态显示decommision,导致写入数据的时候找到了这个有问题的Tablet,报错
tablet迁移完成了吗?看一下是不是完全迁移完成后,就没有这种状态的tablet了
都迁移完了,这种状态会一直存在,所以才导致后面导入数据失败
https://docs.starrocks.io/zh/docs/3.1/sql-reference/sql-statements/cluster-management/tablet_replica/ADMIN_SET_REPLICA_STATUS/ 可以尝试使用该方式进行处理,如果迁移完成后的tablet不完整,可能会需要重建表,重新导入数据