欢迎投稿

今日深度:

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

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




删除数据的驱动:
       由于说需要做数据挖掘,不让删除数据,就一直没有删除数据,总共10T产的占用了8-9T了,服务器天天报警,大半夜起来解决问题,真心受不了发火,就算需要做数据挖掘,也不需这样做啊,可以存加工的数据啊,也不会全部把数据存在,还有公司是不允许我们加服务器的抓狂。

删除数据过程:
      hbase删除数据,我也是新手,描述有问题的,希望大神给我指出。
      思路一:采用mapreduce来删除数据
      思路二:采用hbase shell来进行数据删除
      思路三:设置ttl

      不管以上哪种数据删除,最后都需要面临一个问题,那就是hbase region不释放的问题。


思路一:
     思路很简单,就是想采用mapreduce来多采用多个机器删除数据,结果是惨败,我们的有一个表数据很大,差不多3-4T,需要删除指定时间范围的数据,由于服务器的原因,内存不够,直接把服务器搞死了,后果严重啊,简单的代码如下:



复制代码
思路二:
     有mapreduce来进行删除删除数据,一旦任务执行了,发现服务器报警都停不下来,后来采用hbase shell,直接与数据文件打交道,我们的思路是,监控tps,当执行我的删除数据说话,监控tps,发现tps高于某个值,直接暂停进程,不浪费资源。
     大体步骤:
            1:先采用shell 脚本scan数据,将rowkey记录到文件。
            2:然后调用deleteall 删除rowkey
     感受:
           执行还不错,就是删除的太慢,删除的还没有新增的快,这样熬不住啊。就像有一座金山,想一勺子一勺子的去拿走。
           也算失败告终吧!!!

思路三:
就是直接设置ttl,这个就需要disable表,需要丢数据,实在是没有办法了,然后设置了ttl


复制代码
然后日志就一直刷屏,在合并,更新。删除数据文件。
疑问:执行以上三条命令,时间差不多3分钟,就恢复了,但是后日志一直在合并,我查询了下数据,数据也正常记录,但是查询报错“region not online”,region还在合并呗。就是说影响数据就影响了几分钟,hdfs的数据在慢慢的删除,大概执行了6小时,删除了完毕,服务器恢复正常。



最严重的一个问题:
       hbase不释放region,把数据删除了,region还不释放,那在分析的时候,很消耗内存。
       思路:删除hdfs regionID、删除meta表的region指向.

删除hdfs 


复制代码
删除meta

复制代码

www.htsjk.Com true http://www.htsjk.com/hbase/26946.html NewsArticle hbase数据删除不释放region解决办法,hbaseregion 删除数据的驱动:        由于说需要做数据挖掘,不让删除数据,就一直没有删除数据,总共10T产的占用了8-9T了,服务器天天报警,大半...
相关文章
    暂无相关文章
评论暂时关闭