HBase中的HMaster、HRegionServer、Zookeeper

原文鏈接:http://blog.csdn.net/mm_bit/article/details/51304233

-----------------------------------

HMaster是Hbase主/從集群架構中的中央節點。通常一個HBase集群存在多個HMaster節點,其中一個為Active Master,其余為Backup Master.

Hbase每時每刻只有一個hmaster主服務器程序在運行,hmaster將region分配給region服務器,協調region服務器的負載并維護集群的狀態。Hmaster不會對外提供數據服務,而是由region服務器負責所有regions的讀寫請求及操作。

  由于hmaster只維護表和region的元數據,而不參與數據的輸入/輸出過程,hmaster失效僅僅會導致所有的元數據無法被修改,但表的數據讀/寫還是可以正常進行的。

HMaster的作用:

  • 為Region server分配region
  • 負責Region server的負載均衡
  • 發現失效的Region server并重新分配其上的region
  • HDFS上的垃圾文件回收
  • 處理schema更新請求

HRegionServer作用:
  • 維護master分配給他的region,處理對這些region的io請求
  • 負責切分正在運行過程中變的過大的region

可以看到,client訪問hbase上的數據并不需要master參與(尋址訪問zookeeper和region server,數據讀寫訪問region server),master僅僅維護table和region的元數據信息(table的元數據信息保存在zookeeper上),負載很低。
注意:master上存放的元數據是region的存儲位置信息,但是在用戶讀寫數據時,都是先寫到region server的WAL日志中,之后由region server負責將其刷新到HFile中,即region中。所以,用戶并不直接接觸region,無需知道region的位置,所以其并不從master處獲得什么位置元數據,而只需要從zookeeper中獲取region server的位置元數據,之后便直接和region server通信。
HRegionServer存取一個子表時,會創建一個HRegion對象,然后對表的每個列族創建一個Store實例,每個Store都會有一個MemStore和0個或多個StoreFile與之對應,每個StoreFile都會對應一個HFile, HFile就是實際的存儲文件。因此,一個HRegion有多少個列族就有多少個Store。
一個HRegionServer會有多個HRegion和一個HLog。
當HRegionServer意外終止后,HMaster會通過Zookeeper感知到。

Zookeeper作用在于:

? ? ? ? ? 1hbase regionserver?zookeeper注冊,提供hbase regionserver狀態信息(是否在線)。

? ? ? ? ? 2hmaster啟動時候會將hbase系統表-ROOT-?加載到?zookeeper cluster,通過zookeeper cluster可以獲取當前系統表.META.的存儲所對應的regionserver信息。

?

zookeeperhbase集群的"協調器"。由于zookeeper的輕量級特性,因此我們可以將多個hbase集群共用一個zookeeper集群,以節約大量的服務器。多個hbase集群共用zookeeper集群的方法是使用同一組ip,修改不同hbase集群的"zookeeper.znode.parent"屬性,讓它們使用不同的根目錄。比如cluster1使用/hbase-c1,cluster2使用/hbase-c2,等等。

-------------

更多的Java,Angular,Android,大數據,J2EE,Python,數據庫,Linux,Java架構師,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538624.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spyder python調試_使用spyder編譯器單步調試python

1、將需要進行單步調試的函數在腳本中進行調用(十分重要的一步)。由于python是解釋型語言,在進行單步調試的時候需要告訴系統你使用了這個函數,單步調試才會進入你所需要調式的函數。如下圖所示,我們定義了createDataS…

label qt 自動換行_QT編寫一個登錄界面

前言繼上篇:一起學Qt之基礎篇---入門今天上手實操用QT編寫一個登錄界面~系統權限這個詞大家肯定不陌生,你進入一個網站也是,如果不登錄,就是以游客的身份進去的,要想看到某些信息肯定需要進行登錄,更完善的…

我的世界服務器怎么修改書與筆,我的世界書與筆怎么做 我的世界書與筆怎么用...

第一步先收集甘蔗,然后合成紙,甘蔗在河邊,池塘邊,沼澤地一般都會生成,我們也可以拿回家種植,但是甘蔗必須種在水邊,其他地方種植不了,其他地方玩家怎么右鍵甘蔗都是沒有反應的。第二…

python csv模塊用法_python使用csv模塊如何將數據存放在一張表的不同行?

def save2csv(file_nameNone, headerNone, dataNone): """ 保存成CSV格式文件,方便Excel直接打開 :param file_name: 保存的文件名 :param header: 表頭,每一列的名字 :param data: 具體填充數據 :return: """ if file_name is None or isinstan…

虛擬機 服務器 root,虛擬機切換到root賬戶

虛擬機切換到root賬戶 內容精選換一換一、安裝虛擬機1、下載VMware workstation 14 ,安裝時按照默認配置安裝2、下載ubuntu-18.04.1-desktop-amd64.iso鏡像文件3、打開 VMware workstation ,新建虛擬機4、配置虛擬機內存,磁盤,網絡…

每一行末尾添加分號

文本內容如下: TMP_TBX_100_0_A1 TMP_TBX_100_0_A10 TMP_TBX_100_0_A12 TMP_TBX_100_0_A13 TMP_TBX_100_0_A14 TMP_TBX_100_0_A15 TMP_TBX_100_0_A15_2 TMP_TBX_100_0_A16 TMP_TBX_100_0_A17 TMP_TBX_100_0_A18 TMP_TBX_100_0_A19 TMP_TBX_100_0_A19_2 TMP_TBX_100…

壯觀霉素抗性基因原理_基因組學深入挖掘·研究方案(下篇)

前情回顧上次小編為大家講解了四種以基因組為基礎的多組學聯合研究方案(基因組與轉錄組,深入挖掘基因表達信息;基因組聯合代謝組與轉錄組,鎖定關鍵通路;基因組與群體進化,解析物種發展歷程;基因…

Shell腳本大量示例

幾乎所有的腳本里都有某種流控制結構,很少有例外。流控制是什么?假定有一個腳本,包含下列幾個命令: #!/bin/sh # make a directory mkdir /home/dave/mydocs # copy all doc files cp *.docs /home/dave/docs # delete all doc fi…

Spark 常見問題小結

原文地址:http://www.aboutyun.com/thread-9946-1-1.html -------------------------------------- 問題導讀 1、當前集群的可用資源不能滿足應用程序的需求,怎么解決? 2、內存里堆的東西太多了,有什么好辦法嗎? …

dataframe數據標準化處理_數據預處理——標準化/歸一化(實例)

這次我們來說說關于數據預處理中的數據標準化及歸一化的問題。主要以理論實例的方式為大家展示。本次實驗也將會展示部分數據以及代碼,有興趣的小伙伴可以自己動手試試~在本次實例過程中,我們使用的數據是:2010-2018年間廣州市經濟與環境的時…

python實現自動打電話軟件_全自動手勢聯系軟件 讓你輕輕松松打電話

電話號碼超級多的童鞋們,由于手機里存儲的電話太多,每次要找某個人的電話很難找,有木有同感的?小編今天像大家推薦一款新潮的幫助你輕松找到想要的電話的模式,有沒有很想知道呢?其實小編本來是想賣個關子的…

電腦的虛擬服務器位置,如何配置基于IP地址的虛擬主機

滿意答案虛擬主機簡介:1. 把一臺運行在互聯網上的服務器分成多個虛擬的服務器。2. 每一個虛擬主機都具有獨立的域名和完整的Internet服務器(支持WWW,FTP,E-mail等)。3. 一臺服務器上的不同虛擬主機是各自獨…

VMware配置額外內存設置

配置額外內存設置 額外內存設置用于控制主機系統中的內存管理器如何將虛擬機從物理 RAM 中換出。 要配置額外內存設置,請選擇[編輯] > [首選項] > [內存]。 [調整所有虛擬機內存使其適應預留的主機 RAM] 選擇此選項會對給定時間內可以運行的虛擬機的數量和內…

Kafka.net使用編程入門(一)

最近研究分布式消息隊列,分享下! 首先zookeeper 和 kafka 壓縮包 解壓 并配置好! 我本機zookeeper環境配置如下: D:\Worksoftware\ApacheZookeeper3\conf\zoo.cfg 以下是kafka的配置 D:\Worksoftware\Apachekafka2.11\config\server.propert…

下拉推廣系統立擇火星推薦_下拉詞刪除都擇火星下拉

會員注冊發帖做推廣的人都離不開搜索引擎,就像魚離不開水,很多時候我們做SEO的朋友都在研究各大搜索引擎的機制,收錄,排名規則或者是黑帽技術,不管如何,只是希望把自己的企業,產品,服…

python包路徑有幾個_python的搜索路徑與包(package)

python的搜索路徑其實是一個列表,它是指導入模塊時,python會自動去找搜索這個列表當中的路徑,如果路徑中存在要導入的模塊文件則導入成功,否則導入失敗: >>> importsys>>>sys.path [, C:\\Python33\…

配置文件管理服務器,06-配置文件管理

1配置文件管理設備運行于FIPS模式時,本特性部分配置相對于非FIPS模式有所變化,具體差異請見本文相關描述。有關FIPS模式的詳細介紹請參見“安全配置指導”中的“FIPS”。1.1 配置文件簡介配置文件是用來保存配置的文件。配置文件主要用于: …

虛擬機安裝spark配置推薦

如果虛擬機配置的內存太少,spark運行計算的時候會報: WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster uito ensure that workers are registered and have sufficient memory 資源不足的問題,導…

c++輸入一個整數判斷是否為完全平方數_matlab判斷一個整數是完全平方數

(C語言c)判斷一個數是否是 完全平方數的 整數倍#include#includeint ispow(int x){ int&用c編判斷一個數是否是完全數#include#includeintmain(){intn;printf("請輸入一個數,然后按回車鍵:\n");scanf("%d",&n);inti,p1;for(i2;i*i編…

Linux常用命令——chattr、lsattr

chattr 改變文件的擴展屬性 語法格式:chattr 【option】【mode】【files】chattr [選項] [模式] [文件或目錄]注意:chattr 命令及后面的選項和文件里,每個元素之間都要至少要有一個空格參數選項: 參數選項解釋說明-a只能向文件中…