9.x版本dstool使用

  使用配置
内容纲要

1 工具下载

请联系售后技术支持下载

2 环境安装

使用方式依然沿袭dstool工具,将dstools.tar.gz解压到TDH-Client中,生成dstools目录,结构和老版本dstools工具类似,包括lib和bin目录,较初始9.0版本hbase可能客户端还没有添加相关接口,所以需要将hbase-client-transwarp-9.0.0.jar替换到TDH-Client中,处理完毕后重新source init.sh

较老9.0TDH-Client有可能运行有问题可参考Q&A修改客户端hbase-env.sh中的内容

3 使用方式

3.1 dstool一键检测和修复

#不加参数默认全集群检测(谨慎使用,后果自负),也可以加多个表名处理多张表,需注意如果非default表名需要带上namespace
sh runDSTools.sh 

3.2 hbck2单命令执行,可以自行-help查看细节

# 查看帮助
sh run_hbck2.sh -help

# -o表示强制assign
sh run_hbck2.sh assigns [-o] 

# 和assign相反
sh run_hbck2.sh unassigns [-o] 

#将正在执行的procedure中止掉
sh run_hbck2.sh bypass 

#对指定表的hdfs文件进行检测和修复
sh run_hbck2.sh filesystem [-f] 

#触发服务端fixHoles和fixOverLaps,这里不指定表,是否有region出现holes和overlap由CatalogJanitor定时扫描,这里只是一个触发接口
sh run_hbck2.sh fixMeta

#对一些unkonwnserver或者dead server执行serverScrash用以释放被他们占用的region
sh run_hbck2.sh scheduleRecoveries 

#对所有unknownserver执行serverScrash,一般不需要执行,hbase会定时检测并执行的
sh run_hbck2.sh recoverUnknown

#列出所有正在执行的procedure
sh run_hbck2.sh listProcedure

#修复指定表的rit,-fixStuck修复释放卡住的procedure
sh run_hbck2.sh fixRit [-fixStuck] 

#将指定region从指定servername中unassign,该命令只用来配合一些异常情况处理
sh run_hbck2.sh unassignsForRS  

#打印该表当前所有region rit和procedure卡住的详细信息
sh run_hbck2.sh details 

4 一键修复执行流程和执行结果分析

修复流程包括:

a、修复并检测meta表,如果meta表有问题,而且修复失败则停下来;

b、修复hdfs目录存在但是meta表和内存中确实的region;

c、修复tabledesc文件丢失;

d、修复和诊断region rit。

对于d步,修复诊断rit可能出现的原因及排除方式有:

a、"detect no TRSP but region on opening/closing, should try assign"

重新assign

b、"TRSP waiting all time please check regionServer, probable Cause: 1. region open/close on rs stuck, should restart rs;2. rs update transitRegionState to hmaster fail, should unassignsForRS and bypass open/close procedure"

openRegionProcedure或者closeRegionProcedure执行卡住了,需要排查regionserver和hmaster日志排查原因处理;

c、"TRSP waiting timeout, dispatcher procedure fail or rs open/close region fail, please check hmaster and regionServer’s log"

这个是TRSP执行失败了不端重试,需要排查日志,hmaster日志会有明确失败原因

d、"TRSP running all time and no subProcedure, maybe suspend by events"和 "TRSP lock by other procedure"

这两种情况都需要依赖其它procedure或者时间执行完。可以bypass掉重新assign试试

Q&A

场景一

报错Error: Password file not found: xxxxx/etc/hyperbase2/conf/jmxremote.password

解决方案

file

TDH-Client 里面hbase-env.sh 相关jmx内容注释掉,如上。

场景二

报错Could not find agent library xxx/libjvm_agent.so  xxx  No such file or directory

解决方案

file

HBase高版本不再依赖libjvm_agent.so,这个主要是TDH-Client里面可能包含多个版本的Hyperbase & Hadoop 依赖包,导致加载到低版本的依赖包,建议检查依赖,重新下载TDH-Client,只保留高版本(transwarp-9.x)的依赖包

还有一个种可能,就是classpath 的重复生成导致乱用。建议重开窗口运行。source init.sh

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。