HBase架構(gòu)概述

2018-05-08 14:34 更新

HBase架構(gòu)概述

NoSQL

HBase是一種“NoSQL”數(shù)據(jù)庫(kù)?!癗oSQL”是一個(gè)通用術(shù)語(yǔ),意思是數(shù)據(jù)庫(kù)不是支持SQL作為其主要訪問(wèn)語(yǔ)言的RDBMS,但是有許多類型的NoSQL數(shù)據(jù)庫(kù):BerkeleyDB是本地NoSQL數(shù)據(jù)庫(kù)的一個(gè)例子,而HBase是一個(gè)分布式數(shù)據(jù)庫(kù)。從技術(shù)上講,HBase實(shí)際上更像是一個(gè)“數(shù)據(jù)存儲(chǔ)”而不是“數(shù)據(jù)庫(kù)”,因?yàn)樗鄙僭赗DBMS中找到的許多功能,例如鍵入列,二級(jí)索引,觸發(fā)器和高級(jí)查詢語(yǔ)言等。

但是,HBase具有很多支持線性和模塊化縮放的功能。通過(guò)添加商品類服務(wù)器上托管的RegionServers來(lái)擴(kuò)展HBase集群。例如,如果一個(gè)集群從10個(gè)擴(kuò)展到20個(gè)RegionServers,則它在存儲(chǔ)和處理能力方面都會(huì)翻倍。RDBMS可以很好地?cái)U(kuò)展,但只能達(dá)到某一點(diǎn) - 具體而言就是單個(gè)數(shù)據(jù)庫(kù)服務(wù)器的大小 - 并且為了獲得最佳性能,需要專門的硬件和存儲(chǔ)設(shè)備。HBase的特點(diǎn)是:

  • 一致的讀/寫:HBase不是“最終一致的”DataStore。這使它非常適合諸如高速計(jì)數(shù)器聚合之類的任務(wù)。
  • 自動(dòng)分片:HBase表通過(guò)區(qū)域分布在集群上,隨著數(shù)據(jù)增長(zhǎng),區(qū)域會(huì)自動(dòng)分割和重新分配。
  • 自動(dòng)RegionServer故障切換
  • Hadoop/HDFS集成:HBase支持HDFS作為其分布式文件系統(tǒng)。
  • MapReduce:HBase支持通過(guò)MapReduce進(jìn)行大規(guī)模并行處理,以便將HBase用作源和接收器。
  • Java客戶端API:HBase支持易于使用的Java API進(jìn)行編程式訪問(wèn)。
  • Thrift/REST API:HBase還支持非Java前端的Thrift和REST。
  • 塊緩存和Bloom過(guò)濾器:HBase支持塊緩存和Bloom過(guò)濾器,以實(shí)現(xiàn)高容量查詢優(yōu)化。
  • 操作管理:HBase提供內(nèi)置的網(wǎng)頁(yè)以提供運(yùn)營(yíng)洞察力以及JMX指標(biāo)。

何時(shí)使用HBase

HBase不適合所有問(wèn)題。

首先,確保你有足夠的數(shù)據(jù)。如果你有數(shù)億或數(shù)十億行,那么HBase是一個(gè)很好的選擇。如果只有幾千行,那么使用傳統(tǒng)的RDBMS可能是一個(gè)更好的選擇,因?yàn)樗袛?shù)據(jù)都可能在單個(gè)節(jié)點(diǎn)(或兩個(gè))上,而群集的其余部分可能處于閑置狀態(tài)。

其次,確保您可以在沒(méi)有RDBMS提供的所有額外功能的情況下生存(例如,鍵入列,二級(jí)索引,事務(wù),高級(jí)查詢語(yǔ)言等)。針對(duì)RDBMS構(gòu)建的應(yīng)用程序無(wú)法通過(guò)簡(jiǎn)單更改而“移植”到HBase,例如,一個(gè)JDBC驅(qū)動(dòng)程序??紤]從RDBMS轉(zhuǎn)移到HBase作為一個(gè)完整的重新設(shè)計(jì),而不是一個(gè)端口。

第三,確保你有足夠的硬件。即使是HDFs也不能很好地處理少于5個(gè)的數(shù)據(jù)流(由于HDFS塊復(fù)制的默認(rèn)值為3),加上NAMENODE。

HBase可以在筆記本電腦上獨(dú)立運(yùn)行 - 但這應(yīng)該只被視為一種開發(fā)配置。

HBase和Hadoop / HDFS有什么區(qū)別?

HDFS是一個(gè)非常適合存儲(chǔ)大型文件的分布式文件系統(tǒng)。它的文檔指出,它不是一個(gè)通用的文件系統(tǒng),也沒(méi)有在文件中提供快速的單個(gè)記錄查找。另一方面,HBase建立在HDFS之上,為大型表提供快速記錄查找(和更新)。這有時(shí)會(huì)成為概念混淆的一個(gè)觀點(diǎn)。HBase內(nèi)部將您的數(shù)據(jù)放入HDFS上的索引“StoreFiles”中進(jìn)行高速查找。有關(guān)HBase如何實(shí)現(xiàn)其目標(biāo)的更多信息,請(qǐng)參閱數(shù)據(jù)模型和本章的其余部分。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)