• <menu id="w2i4a"></menu>
  • logo 大數(shù)據(jù)干貨(一)

    文檔首頁>>大數(shù)據(jù)干貨(一)>>HBase基礎(chǔ)知識,面向列的實時分布式數(shù)據(jù)庫

    HBase基礎(chǔ)知識,面向列的實時分布式數(shù)據(jù)庫


    1、HBase定義

    HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項目的子項目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。

    hbase學(xué)習(xí)

    2、HBase特性:

    • 高可靠性
    • 高效性
    • 面向列
    • 可伸縮
    • 可在廉價PC Server搭建大規(guī)模結(jié)構(gòu)化存儲集群

    3、HBase與RDBMS的對比

    HBase適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。介于Map Entry 和 DB row之間的一種數(shù)據(jù)存儲方式。而RDBMS是一個遵循“Codd的十二條規(guī)律”的數(shù)據(jù)庫。主要區(qū)別如下:

    數(shù)據(jù)類型: HBase只有簡單的字符串類型,它只保存字符串所有的類型都是交給用戶自己處理。關(guān)系型數(shù)據(jù)庫可以選擇類型

    數(shù)據(jù)操作: HBase操作只有很簡單的插入、查詢等操作,表與表之間是分離的,沒有join

    存儲模式: HBase基于列存儲,每個列族由幾個文件保存,不同列族的文件是分離的。傳統(tǒng)的關(guān)系數(shù)據(jù)庫是基于表格結(jié)構(gòu)和行模式保存的

    數(shù)據(jù)維護: HBase更新操作時,舊的版本仍然保留,實際上時插入了新數(shù)據(jù)。傳統(tǒng)關(guān)系數(shù)據(jù)庫是替換修改

    可伸縮性: HBase能夠容易的增加或者減少硬件數(shù)量

    4、數(shù)據(jù)模型

    hbase學(xué)習(xí)

    組成部件說明:

    Row Key:Table主鍵行鍵Table中記錄按照Row Key排序;

    Timestamp:每次對數(shù)據(jù)操作對應(yīng)的時間戳,也即數(shù)據(jù)的version number;

    Column Family: 列簇,一個table在水平方向有一個或者多個列簇,列簇可由任意多個Column組成,列簇支持動態(tài)擴展,無須預(yù)定義數(shù)量及類型,二進制存儲,用戶需自行進行類型轉(zhuǎn)換。

    5、系統(tǒng)架構(gòu)

        組成部件說明

    hbase學(xué)習(xí)

    Client:
    使用HBase RPC機制與HMaster和HRegionServer進行通信
    Client與HMaster進行通信進行管理類操作
    Client與HRegionServer進行數(shù)據(jù)讀寫類操作 

    Zookeeper:
    Zookeeper Quorum存儲-ROOT-表地址、HMaster地址
    HRegionServer把自己以Ephedral方式注冊到Zookeeper中,HMaster隨時感知各個HRegionServer的健康狀況
    Zookeeper避免HMaster單點問題

    HMaster:
    HMaster沒有單點問題,HBase中可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master在運行
    主要負責(zé)Table和Region的管理工作:
    1 管理用戶對表的增刪改查操作
    2 管理HRegionServer的負載均衡,調(diào)整Region分布
    3 Region Split后,負責(zé)新Region的分布
    4 在HRegionServer停機后,負責(zé)失效HRegionServer上Region遷移

    HRegionServer:
    HBase中最核心的模塊,主要負責(zé)響應(yīng)用戶I/O請求,向HDFS文件系統(tǒng)中讀寫數(shù)據(jù)

    6、表的設(shè)計

    在表結(jié)構(gòu)設(shè)計時,HBase里有tall narrow和flat wide兩種設(shè)計模式,前者行多列少,整個表結(jié)構(gòu)高且窄;后者行少列多,表結(jié)構(gòu)平且寬;但是由于HBase只能在行的邊界做split,因此如果選擇flat wide的結(jié)構(gòu),那么在特殊行變的超級大(超過file或region的上限)時,那么這種行為會導(dǎo)致compaction,而這樣做是要把row讀內(nèi)存的~~因此,強烈推薦使用tall narrow模式設(shè)計表結(jié)構(gòu),這樣結(jié)構(gòu)更趨近于keyvalue,性能更好。

    本文參考hbase.apache 轉(zhuǎn)載請注明轉(zhuǎn)載自慧都控件網(wǎng)

    慧都控件網(wǎng)年末大促銷,各種優(yōu)惠等著你,詳情請直接點擊查看

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();