当我在Apache HBase中运行主要压缩时,除非我首先完全重启HBase,否则它不会删除标记为删除的行。
首先,我删除了我想要的行,然后执行扫描,看看我想要的行是否标记为删除:
column=bank:respondent_name, timestamp=1407157745014, type=DeleteColumn
column=bank:respondent_name, timestamp=1407157745014, value=STERLING NATL MTGE CO., INC
然后我运行命令major_compact 'myTable'
并等待几分钟,以便在后台完成主要压缩。然后当我再次执行扫描时,行和逻辑删除标记仍在那里。
但是,如果我重新启动HBase并运行另一个主要压缩,则行和逻辑删除标记会消失。简而言之,如果我在运行主要压缩之前执行HBase的重启,major_compact
似乎只能正常工作。关于为什么会出现这种情况的任何想法?我希望每次运行主要压缩时都会删除行和墓碑标记。感谢。
答案 0 :(得分:0)
我的经验是在为此表运行major_compact之前首先刷新表
hbase> flush' table' hbase> major_compact' table'
答案 1 :(得分:0)
步骤1.创建表
创建'mytable','col1'
第2步。将数据插入表中
输入'mytable',1,'col1:name','srihari'
第3步。刷新表格
刷新“ mytable” 在下面的位置观察一个文件
位置:/ hbase / data / default / mytable / * / col1
再重复第2步和第3步,观察该位置,我们可以在该位置看到两个文件。
现在执行以下命令
major_compact'mytable'
现在我们只能在该位置看到一个文件。