由于法律问题,我需要从HBase中删除旧数据。
我找到了一种方法来使用我的标准拆分区域,并将旧数据移动到新区域,但有没有办法删除该区域?
任何其他想法如何实现目标?
答案 0 :(得分: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 :(得分:2)
在较新版本(例如0.96)中,命令为:
deleteall 'hbase:meta', 'YOUR_ROW'
答案 2 :(得分:0)
可以通过删除表中存在的所有列系列来删除Hbase rowkeys。 如果hbase中没有针对rowkey的数据,则从hbase中删除密钥。这可以使用Hbase shell中的Alter命令完成。
虽然表中没有显示这些行键,但已删除的行键的区域出现在.META中。没有数据。