回覆列表
-
1 # 科技大咖的Vitamin
-
2 # 梨有奶香味
HBase 資料庫特性
1 動態列
無需定義表中欄位,直接往表中插入新欄位,空欄位不佔用儲存空間,適用於欄位填充稀疏場景,比如儲存使用者畫像
2 TTL
3 多版本
資料更新後,舊版本依然可以被訪問,適用於維護最近N次資料變更的場景,比如 使用者最近3次的登陸地點
4 MOB
適用於儲存100k - 10M的資料,比如抖音小影片等
5 BulkLoad
高效到處儲存在HDFS上的資料檔案
詳細見我的文章 : https://www.toutiao.com/i6753955222541828615/
HBase 是一種列式的分散式資料庫,是由當年的 Google 公佈的 BigTable 的論文而生。 HBase 底層依舊依賴 HDFS 來作為其物理儲存。
與傳統關係資料庫的區別區別主要是下面幾點:
Hbase
hbase只支援只支援單個 Row 級別的ACID。
索引只支援 Row-key。
採用了類似於 Hadoop 的分散式叢集,硬體成本低廉。
由於是聯機處理所以處理速度能達到百萬查詢/每秒。
資料能達到PB級別。
結構在 HBase 中首有 Column Family 的概念,簡稱為 CF。CF 一般用於將相關的列(Column)組合起來。在物理上 HBase 其實是按 CF 儲存的,只是按照 Row-key 將相關 CF 中的列關聯起來。
Hbase 邏輯排布與物理上排布的關聯HBase 的相關模組MasterHBase Master 用於協調多個 Region Server,偵測各個 Region Server 之間的狀態,並平衡 Region Server 之間的負載。HBase Master 還有一個職責就是負責分配 Region 給 Region Server。HBase 允許多個 Master 節點共存。
Region Server對於一個 Region Server 而言,其包括了多個 Region。Region Server 的作用只是管理表格,以及實現讀寫操作。
Zookeeper對於 HBase 而言,Zookeeper 的作用是至關重要的。首先 Zookeeper 是作為 HBase Master 的 HA 解決方案。也就是說,是 Zookeeper 保證了至少有一個 HBase Master 處於執行狀態。
HBase 的執行原理HBase 的叢集是透過 Zookeeper 來進行各個服務間的協調,HBase Master 與 Region Server 之間的關係是依賴 Zookeeper 來維護。當一個 應用需要訪問 HBase 叢集時,應用需要先和 Zookeeper 來通訊,然後在本地儲存一份服務列表,然後才會找到對應的 Region Server。每一個 Region Server 管理著很多個 Region。對於 HBase 來說,Region 是 HBase 是最基本的儲存區域。資料儲存在 Region 中。每一個 Region 只儲存一個 Column Family 的資料,並且是該 CF 中的一段)。Region 所能儲存的資料大小是有上限的,當達到該上限時,Region 會進行分裂,資料也會分裂到多個 Region 中,透過這種並行方式寫入提系統的效能,提高資料的容量。每個 Region 藏在著多個 Store 物件。每個 Store 都包含一個 MemStore,及一個或多個 HFile。MemStore 是資料在記憶體中的物件,一般都是有序的。當資料要儲存到 Region 的時候,要先寫入 MemStore。當 MemStore 中的資料達到最大值時,Store 會建立 StoreFile,而 StoreFile 就是對 HFile 一層封裝。即 MemStore 中的資料最終寫入到 HFile 中,即儲存到儲存裝置中。
-----------------------------------
本人現處廣州從事網際網路工作多年,資深技術人員、管理人員。願結識有網際網路業務的技術人員或企業人員。