2014-09-18 30 views
2

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

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

回答

7

正如在The Apache HBase Reference Guide中提到的那样-ROOT-表从HBase 0.96.0被删除,而.META表的位置当前存储在Zookeeper及其名称变为hbase:meta

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

但是,HBase的做一些事情来克服这个不足:

  1. 它提供了更高的优先级,使META上网出现故障的时候
  2. 关于HBase的信息:元被缓存客户端用于将来的交互,并且只有当它期望根据该信息进行交互的区域不存在于它认为应该在的节点上时才刷新。 (从HBase In Action:3.3.2我如何找到我的区域?),所以如果Meta区域脱机只请求.META。失败。
+0

对于META表的高可用性,请按照给定[此处](https://issues.apache.org/jira/browse/HBASE-11574)执行以下操作:在服务器端,设置hbase.meta.replica.count到您希望在群集中具有的元数据副本的数量(默认值为1)。 hbase.regionserver。 meta.storefile.refresh.period应以毫秒为单位设置为非零数字 - 类似30000(默认为0)。 在客户端/用户端,将hbase.meta.replicas.use设置为true。 – hp36 2017-02-21 10:05:35

1

饲养员存储承载比-ROOT- -ROOT- 被扫描的RegionServer的位置,找到.META的位置。 并通过扫描.META。你会发现你的数据托管在哪里

.META。和-ROOT-是表/区域的表格/区域。 所以如果机器托管.META。或-ROOT-发生故障 它们将被重新分配给另一台机器,并在此期间 一个新客户端连接试图扫描-ROOT-或.META。会得到一个错误 没有数据丢失,直到重新分配才会被使用