HBase 中的每個 Region Server 都分配了一些表的一些區域。這些 Region Server 可能有很多 Region,它們對應的 Store 檔案在其他 HDFS Datanode 上都有副本。
如果一個 Region Server 宕機,那么 HMaster 將分配另一臺服務器接管并為離線區域提供服務。
我的問題是——缺失區域的存盤檔案是否都存盤在一個區域服務器上?
uj5u.com熱心網友回復:
如果我理解正確,問題是從存盤的 RS 指向的資料在哪里。
從檔案: https ://hbase.apache.org/book.html#config.files
與偽分布式模式一樣,完全分布式配置要求您將 hbase.cluster.distributed 屬性設定為 true。通常,hbase.rootdir 被配置為指向一個高可用的 HDFS 檔案系統。
并且
hbase.rootdir:描述
區域服務器共享的目錄,HBase 保存在該目錄中。URL 應該是“完全限定的”以包含檔案系統方案。例如,要在埠 9000 上的 namenode.example.org 上指定運行 HDFS 實體的 namenode 的 HDFS 目錄“/hbase”,請將此值設定為:hdfs://namenode.example.org:9000/hbase。默認情況下,我們也會寫入任何設定的 ${hbase.tmp.dir}(通常是 /tmp),因此請更改此配置,否則所有資料將在機器重啟時丟失。
uj5u.com熱心網友回復:
解釋和擴展@ramachandran-ag 的答案:任何區域服務器都可以訪問任何區域的資料,因為所有資料都存盤在 HDFS 中。然而,為了獲得更好的性能,區域服務器關注(從歷史上看,自早期的 Hadoop 時代以來)并跟蹤資料區域性,即區域的存盤檔案是否存在于本地 HDFS 資料節點中。RS 指標hbase.regionserver.percentFilesLocal顯示“可以從本地 DataNode 讀取的存盤檔案資料的百分比,0-100”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422774.html
標籤:
