HBase RIT问题处理
在测试集群,下掉一个节点后,出现了有两个Region长期处于RIT状态。看样子系统是无法自动处理了,于是进行手动排除原因和恢复。
在Master中发现以下日志:
2020-12-31 11:01:19,395 WARN [ProcedureExecutor-14] master.RegionStates: Failed to open/close e401a31361ebd9a6c32b5d49fa5d67e1 on ******,61020,1609243352679, set to FAILED_OPEN
2020-12-31 11:01:19,395 INFO [ProcedureExecutor-14] master.RegionStates: Transition {e401a31361ebd9a6c32b5d49fa5d67e1 state=OFFLINE, ts=1609383679393, server=******,61020,1609243352679} to {e401a31361ebd9a6c32b5d49fa5d67e1 state=FAILED_OPEN, ts=1609383679395, server=******,61020,1609243352679}
执行hbck命令检测region状态问题:
bin/hbase hbck > hbck.log
主要有以下关键信息:
ERROR: Region { meta => ******,,1590488678648.e401a31361ebd9a6c32b5d49fa5d67e1., hdfs => hdfs://.../e401a31361ebd9a6c32b5d49fa5d67e1, deployed => , replicaId => 0 } not deployed on any region server.
ERROR: Region { meta => ******,,1584521012462.ce8e9df7ccd47735d61315f81b8d4177., hdfs => hdfs://.../ce8e9df7ccd47735d61315f81b8d4177, deployed => , replicaId => 0 } not deployed on any region server.
试着手动分配region:
assign '******,,1590488678648.e401a31361ebd9a6c32b5d49fa5d67e1.'
成功分配,RIT问题解决。
说明: 使用 hbck 工具修复也可以,但是 hbck 是全局的,执行起来会特别慢,可能会对线上环境产生影响,所以最好采用上面的方式进行修复。 命令如下:
bin/hbase hbck -fixAssignments > fixAssign.log