记一次测试环境Hbase数据备份恢复以及恢复后部分表无法删除的问题处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次测试环境Hbase数据备份恢复以及恢复后部分表无法删除的问题处理相关的知识,希望对你有一定的参考价值。
一、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数据备份恢复以及恢复后部分表无法删除的问题处理的主要内容,如果未能解决你的问题,请参考以下文章