HBase 磁盘爆满 无法启动

 问题描述:  
  Hbase master起不来,hdfs没有问题,起来后没过一会进程又宕了,hdfs磁盘爆了。
 解决过程:
  开始怀疑是zookeepr宕了。查看配置发现是zookeeper在三台slaves上面,可能会造成资源抢占,zookeeper会被hbase挤掉。
  所以将其中一台slaves转到master上面,同事说一般zookeeper会是单独机器防止资源抢占,有些道理但是有待考证。
  通过 hadoop fsadmin -report 命令查看到磁盘已经爆满。看来问题找到了,怎么解决呢?
  master起不来也不能执行语句删除,另外执行语句删除后要compact,磁盘空间才会得到释放;
  此时只能通过强制删除一张表来解决,到hdfs:/hbase/data/default下删除一张较小且好恢复的表。
  查看一下此时的hdfs磁盘情况。先启动zookeeper再启动hbase.
  正常启动后,创建刚才强制删除的表,但是并不一定能创建成功,可能会提示创建表已经存在,删除该表时,提示不存在
 解决方法:
       1.清除Zookeeper内存数据库中的相关数据 zkCli.sh ,
         这里我发现 在master上执行不起来,没有关系,试试在其他启动zookeeper的机子上执行脚本,成功进入后,
          (1)删除 /hbase/table-lock下的相关数据
                ls /hbase/table-lock
                rmr /hbase/table-lock/表名
          (2)删除 /hbase/table下的相关数据
                ls /hbase/table
                rmr /hbase/table/表名
       2.创建表
           create 'LIVE_AD_CHANNEL_CHANGE',{NAME=>'T'},{NAME=>'R'},{NAME=>'E'}
       3.修改表设置,比如 修改TTL 改为  16天 1382400
         alter 'LIVE_AD_CHANNEL_CHANGE',NAME=>'T',TTL=>'1382400'                                            
         alter 'LIVE_AD_CHANNEL_CHANGE',NAME=>'R',TTL=>'1382400'                                            
         alter 'LIVE_AD_CHANNEL_CHANGE',NAME=>'E',TTL=>'1382400'
      

posted on 2017-06-27 10:57  汤汤水水  阅读(1848)  评论(0编辑  收藏  举报