0

我想实际观察 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 文件?

4

2 回答 2

0

试试这个:

将数据放入表中后。从 hbase shell 运行“flush tablename”。然后检查

于 2013-03-19T06:33:15.133 回答
0

WAL 文件存储在 .logs 文件夹(隐藏)中。在独立模式下,写入 WAL 需要时间,而在伪分布式模式下,它可以正常工作

于 2013-04-02T10:23:34.840 回答