HBase 簡介
進入巨量資料 (Big Data) 時代,傳統檔案系統與關聯式資料庫逐漸無法承載過度膨脹的資料量,
透過硬體升級、採用特殊的演算機制,仍然無法有效解決資料持續增長所造成的系統效能不彰問題。
在這樣的困境下,Doug Cutting 於 2006 年開發 Hadoop 分散式系統平台,
切分成多個運算單元與儲存單元,利用分散式的概念,減輕大量資料集中管理對單一節點造成的負擔。
因為 Hadoop 只是一個系統平台,
放在 Hadoop 檔案系統 HDFS (Hadoop Distributed File System) 內的資料雖然是分散儲存,
卻是以檔案的型式存放,並不支援隨機存取 (Random Reads and Writes) 的功能。
為了更方便存取在 Hadoop 環境下的資料,HBase 應運而生,提供一個類似資料庫的儲存環境,
因為與關聯式資料庫架構上有極大的不同,這類型的資料庫通常稱之為 NoSQL 資料庫,
有下列主要的特點:
(一)Distributed 分散式
HBase 包含 Master、Zookeeper 和 Region Server 三個組成要素,
Master 紀錄 Metadata,Zookeeper 負責協調各個節點之間的聯繫,Region Server 管理和取用實際存放的資料內容。
(二)Multi-Dimensional 多維度儲存
HBase 是以 Key-Value 的概念儲存資料,
透過 Rowkey、Column Family、Column Qualifier、Version,可以指定唯一的資料內容。
相較於傳統關聯式資料庫由 Row 和 Column 產生的二維儲存空間,HBase 是一個多維度的資料儲存架構。
(三)High-Availability 高可靠性
資料儲存的部分,可以建立在 Hadoop 的分散式檔案系統HDFS之上,
擁有資料副本,任意一個節點故障,都不影響資料存取。
資料管理方面,HBase Cluster 存在多個 Region Server,任意一台 Region Server 中斷服務,
自動會由另一台 Region Server 接手原有的服務,處理 Client 提出資料存取需求。
(四)High-Performance 高效能
HBase 的分散環境,除了資料分散存放的特性之外,
每一個分散的資料區塊各自擁有獨立的運算能力。
當使用者對整個資料庫系統進行操作的時候,分散的資料各自獨立運算整理,
同步處理使用者的要求,即可達到高效能的運作。
(五)Storage System 儲存系統
HBase 是建構在分散式系統平台上的資料庫。
(六)A Big Sorted Map
HBase 的資料是以 Key-Value 的方式存放,資料結構為
Map<RowKey, Map <ColumnFamily, Map<ColumnQualifier, Map<Version, Data>>>>,
是一個多層的 Map 資料結構。
|