备份环境上面hbase很不稳定,一起来过段时间就会挂
看了下因为region数太多了
总共大概有3万多的region,造成很多表都要下线掉,一上线就RIT.
这上面一个region大概5个T的大小,之前设计的时候估计没考虑到这个问题,而且官方推荐的region大小是10G,可是说是必踩的坑了.
如果让所有表可以都上线,那么就需要把region合并,但是手动执行太慢了,查了些资料写了个代码.
生成merge语句
#!/bin/bash File_split=400 Master_ip=datanode-08 time=$(date "+%Y_%m_%d") Region_Name=$1 Region_Name_File="$Region_Name"_"$time" if [ ! -n "$1" ];then echo "Plase input your region!" else echo "111" curl http://$Master_ip:60010/table.jsp?name=$Region_Name|grep $Region_Name,|awk -F ',' '{print $NF}'|awk -F '.' '{print $2}' >region.txt echo "222" sed -r "s/(.*)/'1'/g" region.txt|sed ':a;N;s/n/,/;Ta' |sed -r "s/(.*)/merge_region 1/g" > $Region_Name_File sed -i '$d' $Region_Name_File rm -f region.txt split -l $File_split $Region_Name_File spfile_$Region_Name_File. rm -f $Region_Name_File fi
自动循环执行merge语句
#!/bin/bash if [ $# -ne 1 ];then echo error..... exit 11 fi IFS_old=$IFS IFS=$'n' file= for i in `cat $file`;do echo -e $i echo "--------------------" echo -e $i |hbase shell done IFS=$IFS_old
region慢慢就被合并删除了了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)