hbase合并文件脚本与shell操作

1.创建命令脚本compact.sh

写入内容:

#!/bin/bash
time_start=`date "+%Y-%m-%d %H:%M:%S"`
echo "开始进行HBase的大合并.时间:${time_start}"
 
str=`echo list | hbase shell | sed -n '$p'`
#str="a,b,c"
str=${str//,/ }
arr=($str)
length=${#arr[@]}
current=1
echo "HBase中总共有${length}张表需要合并."
echo "balance_switch false" | hbase shell | > /dev/null
echo "HBase的负载均衡已经关闭"
 
for each in ${arr[*]}
do
        table=`echo $each | sed 's/]//g' | sed 's/\[//g'`
        echo "开始合并第${current}/${length}张表,表的名称为:${table}"
        echo "major_compact ${table}" | hbase shell | > /dev/null
        let current=current+1 
done
 
echo "balance_switch true" | hbase shell | > /dev/null
echo "HBase的负载均衡已经打开."
 
time_end=`date "+%Y-%m-%d %H:%M:%S"`
echo "HBase的大合并完成.时间:${time_end}"
((duration=$(date +%s -d "$time_end")-$(date +%s -d "$time_start")))
echo "耗时:${duration}s"

 

2.创建后台调用脚本start.sh

写入内容:

nohup ./compact.sh > log 2>&1 &

 

查询hbase的region分区范围

scan "hbase:meta", {COLUMNS => ['info:regioninfo'] }

展示

regionName                    start-rowkey            end-key

 one,,4343.6587.   value={STARTKEY => '',        ENDKEY => '1000000'}
 one,100,bb9b6a.   value={STARTKEY => '1000000', ENDKEY => '2000000'}                                                                  
 one,200,bff9ac.   value={STARTKEY => '2000000', ENDKEY => '3000000'}                                                                           
 one,300,832e19.   value={STARTKEY => '3000000', ENDKEY => ''} 

-------------------------------------------------------------------------------------------

 one,200,bff9ac.   region全称

 bff9ac                  region编码名称

---------------------------------------------------------------------------------------------------------

通过shell合并region  (合并的时候需要停止hbase集群,合并相邻的两个region)  使用region全称

 hbase org.apache.hadoop.hbase.util.Merge one  \
    one,100,bb9b6a.  \
    one,200,bff9ac.

--------------------------------------------------------------------------------------------------------

合并还可以通过启动hbase集群,在hbase-shell中合并

hbase(main):006:0> merge_region 'region1编码名称', 'region2编码名称', true/可选参数,是否强制合并

------------------------------------------------------------------------------------------------------

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小钻风巡山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值