Hbase .META表

时间:2014-09-18 16:18:21

标签: hbase

我对Hbase -ROOT-表和.META表的位置有疑问。我已经读过Hbase -ROOT-表驻留在zookeeper的znode中,所以当客户端查询-ROOT-信息时找到.META的托管服务器。我怀疑.META是否驻留在一台服务器上。如果是,如果该服务器崩溃.META表的信息丢失。还是我错了?可以帮助任何人。

这是我的参考:https://blog.safaribooksonline.com/2012/11/16/tip-2-hbase-meta-layout/

2 个答案:

答案 0 :(得分:8)

The Apache HBase Reference Guide中所述,自从HBase 0.96.0起删除-ROOT-表,并且.META表的位置当前存储在Zookeeper中,其名称变为hbase:meta

目前,Meta数据驻留在单个服务器上,但有一个Open Ticket来复制hbase:meta的区域。

然而,HBase做了一些事情来克服这种不足:

  1. 在发生故障时使META上线的优先级更高
  2. 有关hbase:meta的信息由客户端缓存以供将来的交互使用,只有当它认为应该在其上的节点上不存在基于该信息进行交互的区域时才会刷新。 (来自HBase In Action:3.3.2我如何找到我的区域?),因此如果Meta区域仅脱机请求.META。失败。

答案 1 :(得分:1)

zookeeper存储托管-ROOT-的RegionServer的位置 扫描-ROOT-,找到.META的位置。 并通过扫描.META。您可以找到托管数据的位置

.META。和-ROOT-是表/区域作为您的表/区域。 所以,如果机器托管.META。或-ROOT-下降 他们将被重新分配到另一台机器并在此期间 连接尝试扫描-ROOT-或.META的新客户端。会收到错误 没有数据丢失,只有在重新分配后才能使用