2014-09-18 63 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。會得到一個錯誤 沒有數據丟失,直到重新分配纔會被使用