码迷,mamicode.com
首页 > 其他好文 > 详细

记一次测试环境Hbase数据备份恢复以及恢复后部分表无法删除的问题处理

时间:2018-06-15 17:08:39      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:其他   delete   存在   null   数据备份   style   界面   other   ast   

一、Hbase数据备份恢复

说明:

因为测试环境要修改hadoop配置文件hdfs-site.xml的参数hdfs.rootdir


修改前的配置

   <property>

        <name>hbase.rootdir</name>

        <value>hdfs://masters/hbase1</value>

    </property>

修改后的配置

   <property>

        <name>hbase.rootdir</name>

        <value>hdfs://masters/hbase</value>

    </property>


所以修改之后原来存在hbase1的表都不能用了,需要做下备份,然后把表导入到hbase中。


具体的处理过程如下所示:


1、停止hbase服务

登录hbase主节点

$ cd $HBASE_HOME/bin

$ stop-hbase.sh


2、备份hbase1

检查hbase1的大小

$ ./hdfs dfs -du -s -h /hbase1

2.8 G  /hbase1


备份

登录hadoop主节点

$ cd $HADOOP_HOME/bin

$ ./hadoop distcp hdfs://192.168.22.178:9000/hbase1 hdfs://192.168.22.178:9000/backuphbase

执行的过程中出现部分任务失败的信息,如下所示:


INFO tools.DistCp: Input Options: DistCpOptions{atomicCommit=false, syncFolder=false, deleteMissing=false, ignoreFailures=false, maxMaps=20, sslConfigurationFile='null', copyStrategy='uniformsize', sourceFileListing=null


Caused by: java.io.IOException: Couldn't run retriable-command: Copying 


不知道什么情况,先忽略


查看备份文件的大小

 bin]$ ./hdfs dfs -du -s -h /backuphbase

2.8 G  /backuphbase


删除hbase1

$ ./hdfs dfs -rm -R /hbase1

18/06/15 10:58:10 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.

Deleted /hbase1


3、恢复文件到hbase

$ ./hdfs dfs -mkdir /hbase

$ ./hadoop distcp hdfs://192.168.22.178:9000/backuphbase/* hdfs://192.168.22.178:9000/hbase


二、恢复后部分表无法删除的问题处理

1、启动hbase服务

$ cd $HBASE_HOME/bin

$ start-hbase.sh


2、发现问题

浏览器输入http://192.168.22.178:16010


发现有两个表(table1和table2)的Other Regions列值为1,其他都为0,接下来在删除这个表的过程中发现也不能成功执行,删除过程如下:

$ cd $HBASE_HOME/bin

$ ./hbase shell

hbase(main):001:0> disable 'table1'

hbase(main):001:0> drop 'table1'


这里执行删除表的命令时会卡死,另一个表也是这种情况。


3、解决问题

3.1、在hdfs文件系统中删除两个表的文件

$ cd $HADOOP_HOME/bin

$ ./hdfs dfs -rm -r /hbase/data/default/table1

$ ./hdfs dfs -rm -r /hbase/data/default/table2


3.2、在ZK中删除两个表的文件

登录ZK节点

$ cd $ZK_HOME/bin

$ ./zkCli.sh 

[zk: localhost:2181(CONNECTED) 1] rmr /hbase/table/table1

[zk: localhost:2181(CONNECTED) 2] rmr /hbase/table/table2


3.3、重启服务

重启服务流程

关闭hbase集群-->关闭hadoop集群-->启动hadoop集群-->启动hbase集群


启动完成后在web界面发现两个表都消失了


记一次测试环境Hbase数据备份恢复以及恢复后部分表无法删除的问题处理

标签:其他   delete   存在   null   数据备份   style   界面   other   ast   

原文地址:http://blog.51cto.com/xiaoxiaozhou/2129906

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!