Hbase體系結(jié)構(gòu)理解

1. Hbase的集群架構(gòu)

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、九龍坡網(wǎng)絡(luò)推廣、微信小程序、九龍坡網(wǎng)絡(luò)營銷、九龍坡企業(yè)策劃、九龍坡品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供九龍坡建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:bm7419.com

    首先hbase是hadoop的一個組件.而hadoop內(nèi)部有很多的組件,這些組件幾乎都依賴于hadoop最核心的兩個東西建立起來的,一個是hdfs文件系統(tǒng),另一個是mapreduce。當(dāng)然hbase也不例外。

    hbase其實就是一個非關(guān)系型的數(shù)據(jù)庫系統(tǒng),可以將他和關(guān)系型數(shù)據(jù)庫MySQL類比一下,可能會便于

理解。

Hbase體系結(jié)構(gòu)理解                                                                                                (此圖引用于百度百科)

    Hbase有3種搭建方式:本地模式,偽分布模式和集群模式。那么一般情況下,我們便于學(xué)習(xí)Hbase的各種特性,只需要搭建偽分布模式即可。偽分布模式和集群模式的區(qū)別就是,hbase這個系統(tǒng)的所有守護進程全部運行在一個物理節(jié)點上和真正的分布在不同的物理節(jié)點之上。

    那么不論是偽分布和集群模式。其集群都包含幾個主要的守護進程:HMaster,HRegionserver,zookeeper,以及client。那么我們通過命令行或者JavaApi或其他方式來使用Hbase時,都是通過client向hbase發(fā)送命令的。

    簡單理解一下各個守護進程的作用:HMaster并不像hdfs中的Namenode那樣,維護了整個系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)與client交互以實現(xiàn)對分節(jié)點的管理控制等全部統(tǒng)籌功能。Hmaster不負(fù)責(zé)與client有太多的交互,大部分情況下是由zookeeper來與client通信,然后實現(xiàn)對hbase的使用和管理。同時元數(shù)據(jù)也是由zookeeper來維護的,包括各個regionserver的地址等等。

    下面是一個簡單的總結(jié)這兩者各自的分工:

  • Zookeeper

    保證任何時候,集群中只有一個running master

    存貯所有Region 的尋址入口

    實時監(jiān)控Region Server 的狀態(tài),將Region server 的上線和下線信息,實時通知給Master

    存儲Hbase 的schema,包括有哪些table,每個table 有哪些column family

  • Master可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master運行

    為Region server 分配region

    負(fù)責(zé)region server 的負(fù)載均衡

    發(fā)現(xiàn)失效的region server 并重新分配其上的region

2. Hbase的存儲方式和結(jié)構(gòu)

    要講Hbase的存儲方式,我們從兩方面來描述,一個是邏輯存儲方式和物理的存儲方式。(比如mysql中的二維關(guān)系表就是關(guān)系型數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu),而這些表在硬盤上實際的存儲形式便是所謂的物理存儲方式)。

     Hbase的邏輯存儲方式:

     Hbase體系結(jié)構(gòu)理解    表是稀疏表,所以可以類別mysql的關(guān)系表來理解,但是實際上并不是一回事。首先表有行健,列簇,列名,時間簇等幾個概念。一個表定義之初,應(yīng)該給出其表名,列簇信息。一行中,有多個固定的列簇,每個列簇下在插入數(shù)據(jù)時可以設(shè)置任意的列名。由一個行健,一個列簇+列名可以標(biāo)定一個表中的單元格,而一個單元格中有由時間戳區(qū)分不同版本的值。表中的所有信息實際上都是以二進制形式存儲的。不像關(guān)系表中支持那么多的數(shù)據(jù)類型。所以如果要用各種數(shù)據(jù)類型,只能由自己在程序中進行維護。

   Hbase的物理存儲方式:

   Hbase的數(shù)據(jù)其實是由Hmaster進行配置,實際上存在各個Hregionserver中的。一個稀疏表是按行健進行排序和存儲。這些表會按行被拆分為多個region存儲道不同的regionserver中,一個regionserver中可以存儲多region。這些region對應(yīng)了表中的不同部分的行,而這些行實際也被劃分為不同的文件存儲,劃分方式即是列簇,一個列簇一個文件,所以稱之為面向列的數(shù)據(jù)庫。那么這些文件實際上是放在hdfs里的,也就是以block的形式存儲在硬盤上的。

   那么表是按rowkey的字典順序來存儲的,簡單來說,就是對于rowkey,從左到右,譯成ascii碼來比大小排序。所以呢由于這個原因,在設(shè)計rowkey時,最好不要直接把時間戳這樣的數(shù)據(jù)直接作為rowkey,因為這樣會導(dǎo)致新產(chǎn)生的數(shù)據(jù)由于其時間戳都在一個范圍內(nèi),導(dǎo)致存儲的時候全部擁擠到某一個regionserver中。一般可以在時間戳前面加上散列值,設(shè)計成:(散列值:時間戳)這樣的形式

    


網(wǎng)站名稱:Hbase體系結(jié)構(gòu)理解
本文路徑:http://bm7419.com/article38/ijhjpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、營銷型網(wǎng)站建設(shè)域名注冊、企業(yè)網(wǎng)站制作網(wǎng)站策劃、App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化