1. 程式人生 > >記一次測試環境Hbase數據備份恢復以及恢復後部分表無法刪除的問題處理

記一次測試環境Hbase數據備份恢復以及恢復後部分表無法刪除的問題處理

localhost mkdir folder max 一個表 任務 spa file config

一、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數據備份恢復以及恢復後部分表無法刪除的問題處理