2011-06-20 48 views
2

由於法律問題,我需要從HBase刪除舊數據。HBase:如何刪除區域

我找到了一種方法來使用我的標準拆分區域,並將舊數據移動到新區域,但是有沒有辦法刪除該區域?

任何其他的想法如何實現目標?

回答

4

嘗試

delete '.META.', 'ROW_FROM_META_WITH_YOUR_TABLE' 

如果您不能確定要刪除運行在一個掃描行什麼「.META。」或將其值轉儲到文件中:

echo "scan '.META.'"| hbase shell &> dump.txt 

然後找到您的行並將其刪除。

由於這會給你的地區留下一個「漏洞」,因此請確保你運行了hbase hbck PlatformData -repair來修復這些問題。

這是一個small java code snippet這樣做,並從基礎HDFS刪除文件。

+1

不要忘記讓移動/刪除數據文件夾@ HDFS://.../user/hbase/

/

0

可以通過刪除表中所有列列表來刪除Hbase rowkeys。 如果沒有數據針對hbase中的rowkey,則從hbase移除密鑰。這可以使用Hbase shell中的Alter命令完成。

儘管這些行鍵並未顯示在表中,但.META中存在已刪除行鍵的區域。沒有數據。

2

在新的版本,如0.96的命令是:

deleteall 'hbase:meta', 'YOUR_ROW'