【问题标题】:How Recovery works in HBase恢复如何在 HBase 中工作
【发布时间】:2013-03-18 05:09:31
【问题描述】:

我想实际观察 HBase 中的恢复是如何工作的,我使用了以下 sn-p 代码

    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 文件?

【问题讨论】:

    标签: hadoop hbase


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 感谢您的回复......“flush tablename”工作正常......因为,“flush tablename”类似于正确关闭 HBase......我想检查 WAL 的恢复情况,如果我们不会正确刷新或停止 HBase...您知道日志文件将存储在本地文件系统中的什么位置以及如何读取它们吗?
    • 希望存放在 hbase.rootdir/.logs 目录下。 hbase.rootdir 是你在 hbase-site.xml 中配置的目录
    • 它们是什么类型的文件?
    • 对于每个表都有一个相应的文件包含 -> 列族 -> 内部包含另外两个文件...对于这些文件没有扩展名...我试图在十六进制编辑器中打开它它没有显示任何信息..在属性中它显示 1kb 大小
    • 我在 HDFS 上运行 HBase。我通过 hadoop UI 浏览了文件系统,我可以在那里读取日志文件的内容
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2013-08-11
      • 2018-02-09
      • 2014-07-10
      • 1970-01-01
      相关资源
      最近更新 更多