Doris decommission be节点卡住

Posted Geoffrey Turing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Doris decommission be节点卡住相关的知识,希望对你有一定的参考价值。

问题

在Doris 0.13.15 预编译版本中

Doris decommission三个 be节点卡住

alter system decommission backend "be_host-1:9050"
alter system decommission backend "be_host-2:9050"
alter system decommission backend "be_host-3:9050"

卡住
在这里插入图片描述

分析

查看源码,需要调整catalog_trash_expire_second参数
其余参数可以查看《Doris FE配置中文描述》
这个参数的意义在于提供了一个保护机制,删除数据库(表/分区)后,可以在这个catalog_trash_expire_second时间内使用 RECOVER stmt 恢复它。
此参数指定了最大数据保留时间。 一段时间后,数据将被永久删除

这个是保护用的,怕有人删除了数据后悔来不及恢复数据
所以
因为有人删除了表的原因,导致由于一些表的分区被删除了,但是还在回收区导致的be decommission卡死

源码分析

在这里插入图片描述
在这里插入图片描述

erasePartition()方法中的isExpire()里就是通过这个参数进行判断是否可以删除分区,当然他必须大于一个最小的删除延迟时间minEraseLatency(10min)

解决

将参数
catalog_trash_expire_second(默认值86400,1天)
设置小点,等待待回收的分区数据过期后,decommission即可完毕

后续问题

将参数调整小后,下线的三个节点中,有2个已经下线成功,但是还有一个be节点卡在了剩余tablet 为2个的状态
在这里插入图片描述

解决办法

CANCEL DECOMMISSION BACKEND "be_host-1:9050";

等待show proc ‘/statistic’;中不健康的tablet降为0后再次下线,当然你也可以尝试 不用等待不健康tablet降为0后执行执行下线命令

alter system decommission backend "be_host-1:9050"

以上是关于Doris decommission be节点卡住的主要内容,如果未能解决你的问题,请参考以下文章

05 doris 集群搭建

Doris-简介架构编译安装和数据表的基本使用

运行nodetool decommission后丢失数据

Doris集群部署

Doris实践——Doris编译安装及环境准备

Doris:Doris介绍