溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HBase數(shù)據(jù)模型的概念是什么

發(fā)布時間:2021-12-09 13:36:54 來源:億速云 閱讀:255 作者:iii 欄目:云計算

本篇內(nèi)容主要講解“HBase數(shù)據(jù)模型的概念是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“HBase數(shù)據(jù)模型的概念是什么”吧!

簡介:

HBase(Hadoop Database):一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價的PC Server上搭建起大規(guī)模機構(gòu)化存儲集群。

HBase是一個山寨版本的BigTable,不過它站在Hadoop這個巨人的肩膀上!

HBase是一個非關(guān)系型數(shù)據(jù)庫(NoSQL數(shù)據(jù)庫)

 NoSQL關(guān)系型數(shù)據(jù)庫
數(shù)據(jù)模型適合結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù)適用于結(jié)構(gòu)化的數(shù)據(jù)
擴展性易于擴展,如添加節(jié)點以及擴容            較難
語言不同數(shù)據(jù)庫操作不同標準SQL或類SQL
模式Schema隨時添加字段必須預先定義好,不方便擴展

HBase以表的形式存儲數(shù)據(jù)

表的特點:

  • 大:一個表可以有上億行,上百萬列

  • 面向列:面向列(族)的存儲和權(quán)限控制,列(族)獨立檢索

  • 稀疏:對于為null的列,并不占用存儲空間,因此,表可以設計的非常疏松

下圖是Hadoop生態(tài)系統(tǒng):

HBase數(shù)據(jù)模型的概念是什么

HBase位于結(jié)構(gòu)化存儲層;

Hadoop HDFS為HBase提供了高可靠性的底層存儲支持

Hadoop MapReduce為HBase提供了高性能的計算能力

Zookeeper為HBase提供了穩(wěn)定服務和failover機制

此為,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數(shù)據(jù)統(tǒng)計處理變得非常簡單。Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導入功能,使得傳統(tǒng)數(shù)據(jù)庫向HBase中遷移變的非常方便。

數(shù)據(jù)模型的關(guān)鍵概念:

  • RowKey:用來檢索記錄的主鍵。訪問HTable中的行,只有三種方式:

    • 通過單個rowkey訪問

    • 通過rowkey的range

    • 全表掃描

  • Qualifier:可動態(tài)擴展的列,不需要先定義到HTable schema中,類似于關(guān)系型數(shù)據(jù)庫中的列(Column)

  • Famliy:列族,相當于一個Family下面有多個Qualifier。TTL(留存期),Versions(最大版本數(shù)),Comperssion(壓縮方式)等待都是設置在這一級。

  • Version/Timestamp:由單一rowkey對應family:qualifier下的值可以允許有多個版本,由毫秒級的時間戳來區(qū)分,也可以制定范圍取任意版本對應的數(shù)據(jù)

  • Cell:存儲的最小單位。由rowkey+family:qualifier+timestamp三個維度唯一確定取出value

  • Namespace:表命名空間,不指定則為默認“default”空間

HTable系統(tǒng)表:

hbase:namespace:存儲htable的各表的命名空間

hbase:meta:存儲htable的各個region起止rowkey信息,位置信息等

hbase:ad:記錄一些表操作權(quán)限的信息,支持到qualifier的ACL,權(quán)限分類READ('R'),WRITE('W'),EXEC('X'),CREATE('C'),ADMIN('A') 

HBase存儲框架:

HBase數(shù)據(jù)模型的概念是什么

  • Zookeeper:HBase集群依賴該組件

    • Zookeeper Quorum存儲-ROOT-表地址、HMaster地址

    • HRegionServer把自己以Ephedral方式注冊到Zookeeper中,HMaster隨時感知各個HregionServer的健康情況

  • HMaster:主要負責Table和Region的管理工作

    • 管理用戶對表的增刪查改操作

    • 管理HRegionServer的負載均衡,調(diào)整Region分布

    • Region Split后,負責新Region的分布

    • 在HRegionServer停機后,負責失效HRegionServer上Region遷移

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

    • HRegionServer管理一些列HRegion對象

    • 每個HRegion對應Table中一個Region,HRegion由多個HStore組成

    • 每個HStore對應Table中一個Column Family的存儲

    • Column Family就是一個集中的存儲單元,故將具有相同IO特性的Column放在一個Column Family會更高效

  • Region:當Table隨著記錄數(shù)不斷增加而變大后,會逐漸分裂成多份splits,成為regions,一個region由[startkey,endkey)表示,不同的region會被Master分配給相應的RegionServer進行管理

  • HStore:HBase存儲的核心。由MemStore和StoreFile組成,MemStore是Sorted Memory Buffer

  • HLog:在分布式系統(tǒng)環(huán)境中,無法避免系統(tǒng)出錯或者宕機,一旦HRegionServer意外退出,MemStore中的內(nèi)存數(shù)據(jù)就會丟失,為防止數(shù)據(jù)丟失,引入了HLog。

    每次用戶操作寫入Memstore的同時,也會寫一份數(shù)據(jù)到HLog文件,HLog文件定期會滾動出新,并刪除舊的文件(已持久化到StoreFile中的數(shù)據(jù))。當HRegionServer意外終止后,HMaster會通過Zookeeper感知,HMaster首先處理遺留的HLog文件,將不同region的log數(shù)據(jù)拆分,分別放到相應region目錄下,然后再將失效的region重新分配,領取到這些region的HRegionServer在Load Region的過程中,會發(fā)現(xiàn)有歷史HLog需要處理,因此會Replay HLog中的數(shù)據(jù)到MemStore中,然后flush到StoreFiles,完成數(shù)據(jù)恢復。

  • HDFS:HDFS是一個分布式文件系統(tǒng)。它通過將一個大的文件劃分成一個個固定大小的Block來實現(xiàn)分布式存儲。每一個Block的默認大小為128MB。每一個Block都存在多個備份,并且被部署在不同的數(shù)據(jù)節(jié)點上,來保障數(shù)據(jù)的安全。目前,HBase的所有底層數(shù)據(jù)都以文件的形式交由HDFS來存儲。HBase一側(cè)本身不固化保存數(shù)據(jù)信息

到此,相信大家對“HBase數(shù)據(jù)模型的概念是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI