我想实际观察hbase中恢复的工作方式,我使用了以下代码片段
Put p=new Put(Bytes.toBytes("name10"));
p.setWriteAheadLog(true);
p.add(Bytes.toBytes("cf"), Bytes.toBytes("name"),Bytes.toBytes("Some Value 10"));
table.setAutoFlush(true);
table.put(p);
在执行上述代码之后,我重新启动了vm(没有停止hbase)并启动了hbase,当我扫描这个表时,rowkey name10没有出现。其中,当我正确地停止hbase示例并重新启动vm时,它显示得非常完美(因为hbase从memstore将数据推送到hbase表中)。
虽然,我的wal被启用了,为什么它不能恢复。我的理解有错吗?
wal文件将存储在哪里?我在本地文件系统上使用hbase而不是hdfs…我可以在哪里检查wal文件?
2条答案
按热度按时间fcipmucu1#
试试这个:
把数据放到表中之后。从hbase shell运行“flush tablename”。然后检查
h6my8fg22#
wal文件存储在.logs文件夹中(隐藏)。在独立模式下,写入wal需要时间,而在伪分布式模式下,它可以正常工作