分享

hbase删除数据的问题

guxingyu 发表于 2014-7-2 19:17:01 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 48075
我使用Hbase API删除数据后,在hbase库里面是扫描不到数据了。但是它的region还没有释放,我在手工做了compact_major后,Region还是没有得到释放。配置文件是默认一天HFile做一次合并,但是我在删除表中数据几天了,而那部分删除的数据所对应的Region仍然没有得到释放,哪位大侠知道原因

已有(3)人评论

跳转到指定楼层
howtodown 发表于 2014-7-2 19:35:21
hbase好像一直存在这种问题:

思路:
删除hdfs regionID、删除meta表的region指向.

删除hdfs

  1. #!/bin/sh  
  2. if [ $# -lt 3 ] ; then  
  3.     echo "please input 3 parameter[file_name_path、hadoop_path、input_path]"  
  4.     exit  
  5. else  
  6.     cat $1 | while read row  
  7.     do  
  8.         regionpath=`echo "$row" | awk -F '.' '{print $2}'`  
  9.         table=`echo "$row" | awk -F ',' '{print $1}'`  
  10.         #删除hdfs的region  
  11.         if [ -z $table ] ; then  
  12.            echo "table is null"  
  13.            exit;  
  14.         fi  
  15.   
  16.         if [ -z $regionpath ] ; then  
  17.            echo "regionpath is null"  
  18.            exit;  
  19.         fi  
  20.   
  21.         cd $2  
  22.         ./hadoop fs -rmr  /hbase/$table/$regionpath  
  23.         #删除meta表的region  
  24.         echo "deleteall '.META.','$row'">>$3  
  25.         echo "$regionpath"  
  26.     done  
  27. fi  
复制代码

删除meta

  1. #!/bin/sh  
  2. if [ $# -lt 2 ] ; then  
  3.     echo "please input 2 parameter[hbase_path、file_path]"  
  4.     exit  
  5. else  
  6.     if [ -z $1 ] ; then  
  7.         echo " hbase_path is null!!!"  
  8.         exit  
  9.     fi  
  10.   
  11.     if [ -z $2 ] ; then  
  12.         echo " file_path is null!!!"  
  13.         exit  
  14.     fi  
  15.     cd $1  
  16.     ./hbase shell< $2  
  17. fi  
  18. ~            
复制代码








回复

使用道具 举报

hyj 发表于 2014-7-2 20:22:44
推荐:

hbase数据删除不释放region解决办法


HBase实现记录定期定量删除

回复

使用道具 举报

x5136160 发表于 2014-7-15 20:19:25
很好很好,了解了解。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条