分布式資料庫HBase簡介

2021-09-02 10:57:21 字數 1766 閱讀 5486

hbase 是乙個面向列的分布式資料庫。hbase 不是乙個關係型資料庫,其設計目標是用來解決關係型資料庫在處理海量資料時的理論和實現上的侷限性。傳統關係型資料庫在上世紀七十年代為交易系統設計,以滿足資料一致性(acid)為目標,並沒有考慮資料規模擴大時的擴充套件性,以及單點系統失效時的可靠性。雖然經過多年的技術發展,產生了一些對關係性資料庫的修補(並行資料庫),然而受限於理論和實現上的約束,擴充套件性從來沒有超過 40 個伺服器節點。而 hbase 從一開始就是為 terabyte 到petabyte 級別的海量資料儲存和高速讀寫而設計,這些資料要求能夠被分布在數千台普通伺服器上,並且能夠被大量併發使用者高速訪問。

看看這個像不像中國移動的業務?

分布式資料庫 hbase 的特點和優勢

高可擴充套件性

hbase 是真正意義上的線性水平擴充套件。資料量累計到一定程度(可配置),hbase系統會自動對資料進行水平切分,並分配不同的伺服器來管理這些資料。這些資料可以被擴散到上千個普通伺服器上。這樣一方面可以由大量普通伺服器組成大規模集群,來存放海量資料(從幾個 tb 到幾十 pb 的資料)。另一方面,當資料峰值接近系統設計容量時,可以簡單通過增加伺服器的方式來擴大容量。這個動態擴容過程無需停機,hbase系統可以照常執行並提供讀寫服務,完全實現動態無縫無宕機擴容。

高效能

hbase 的設計目的之一是支援高併發使用者數的高速讀寫訪問。這是通過兩方面來實現的。首先資料行被水平切分並分布到多台伺服器上,在大量使用者訪問時,訪問請求也被分散到了不同的伺服器上,雖然每個伺服器的服務能力有限,但是數千台伺服器彙總後可以提供極高效能的訪問能力。其次,hbase 設計了高效的快取機制,有效提高了訪問的命中率,提高了訪問效能。

高可用性

hbase 建立在 hdfs 之上。hdfs 提供了資料自動複製和容錯的功能。hbase 的日誌和資料都存放在 hdfs 上,即使在讀寫過程中當前伺服器出現故障(硬碟、記憶體、網路等故障),日誌也不會丟失,資料都可以從日誌中自動恢復。hbase 系統會自動分配其他伺服器接管並恢復這些資料。因此一旦成功寫入資料,這些資料就保證被持久化並被冗餘複製,整個系統的高可用性得到保證。

資料模型及其特點

hbase 是乙個面向列的、稀疏的、分布式的、持久化儲存的多維排序對映表(map)。表的索引是行關鍵字、列簇名(column family)、列關鍵字以及時間戳;表中的每個值都是乙個未經解析的位元組陣列。

面向列:指的是同乙個列簇裡所有資料都存放在乙個檔案中,從而在讀寫時有效降低磁碟i/o的開銷,並且由於類似資料存放在一起,提高了壓縮比。經過壓縮後的資料容量通常達到原來的 1/3 到 1/5, 極大節省了儲存空間。

多維表:這是對傳統二維關係表的極大擴充。傳統二維表有兩維:行和列。列在設計表結構時必須預先固定,而行可以動態增加,也就是說有乙個維度可動態改變。hbase的多維表有四維,列簇需要在設計表結構時事先確定,而行、列、時間維都可以動態增加。也就是說有三個維度可動態改變。這種結構非常適合用來表述有巢狀關係的資料。另外,動態增刪列的能力也給很多業務帶來便利,特別是這些業務在不停的演化,需要的列字段也在不停的增加,多維表結構可以隨時進行改變以適應業務發展需求。

稀疏表:由於多維表的列可以動態增加,必然導致不同行相同列的資料大部分為空,也就是說這個表是稀疏的。不像傳統關係型資料庫,hbase 不存放空值,只存放有內容的**單元(cell),因此可以支援超大稀疏表,而不會帶來任何開銷。這對傳統的表結構設計也帶來了觀念上的大改變。

分布式資料庫HBase簡介

hbase 是乙個面向列的分布式資料庫。hbase 不是乙個關係型資料庫,其設計目標是用來解決關係型資料庫在處理海量資料時的理論和實現上的侷限性。傳統關係型資料庫在上世紀七十年代為交易系統設計,以滿足資料一致性 acid 為目標,並沒有考慮資料規模擴大時的擴充套件性,以及單點系統失效時的可靠性。雖然...

HBase分布式資料庫

hbase是乙個分布式的 面向列的開源資料庫,該技術 於changetal所撰寫的google bigtable 乙個結構化資料的分布式儲存系統 高可靠性 高效能 面向列 可伸縮 hbase hadoop database hdfs為hbase提供高可靠底層儲存支援 mapreduce為hbase提...

初步了解分布式資料庫HBase

hbase是乙個高可靠 高效能 面向列 可伸縮的分布式資料庫,它是谷歌bigtable的開源實現,主要用來儲存非結構化和半結構化的鬆散資料。hbase的目標是處理非常龐大的表,可以通過水平拓展的方式,利用廉價計算機集群處理超過10億行資料和數百萬列元素組成的資料表。hbase利用 hadoop ma...