2011-06-20 125 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'