Hbase學習技巧
1、深入瞭解Hbase物理模型架構:
從物理結構上講,HBase由三種類型的伺服器構成主從式架構。它的主節點master主要的作用為對錶的建立和刪除。從節點segionserver主要作用為操作資料表,對錶進行檢視修改插入等操作。Hbase的segionserver和HDFS的DataNode放置在一起,使segionserver操作的資料具有區域性性。
Hbase表按照rowkey分成若干個ragion,這些ragion由ragionserver管理,每個ragionserver最多可以管理1000個ragion,每個ragion的大小為1G,然後ragion又根據列簇分為若干個store,每個store中又有三個部分,memstore、storefile、BlockCaceh。當有資料寫入store時,h會先將資料寫入memstore中,也就是記憶體中,memstore寫滿至百分之八十才會溢位到storefile中,也就是Hfile。
Mater的主要職責:
(1)協調Region Servers
(2)啟動時分配Region,還原時重新分配Region或者負載均衡
(3)監控叢集中所有RegionServer例項管理員方法
(4)提供建立,刪除,更新表的介面。
ZooKeeper的作用:
HBase使用Zookeeper做為分散式協調服務來維護及群眾server的狀態。Zookeeper維護處於活狀態並可使用的Severs,並提供Server故障通知。Zookeeper使用共識來保證共同共享的狀態。
2、Region Server執行在HDFS的DataNode具備的元件:
(1). WAL:預寫日誌是分散式檔案系統上的檔案。WAL用於儲存尚未被永久儲存的新資料,用於故障情況下的恢復。
(2). BlockCache:是讀取快取。在記憶體中儲存頻繁讀取的資料,近期最少使用的資料在滿時被刪除。
(3). MemStore:是寫入快取。儲存尚未寫入磁碟的資料。在寫入磁碟之前進行排序,每個region的每個column family有一個MemStore。
(4). 在磁碟上,Hfiles將行儲存為已排序的KeyValues。
3、strore的資料儲存:
當MemStrore積聚了足夠的資料,整個有序集合被寫入到HDFS的HFile中。HBase每個列族使用多個HFile,其中包含真正的Cell或者KeyValue例項。隨著時間的推移,在MenStore中跟據KeyValue排序,最終重新整理到磁碟HFile檔案中。
注意這也是HBase為什麼限制列族數量的一個原因。每個列族只有一個MemStore;當一個MemStore資料滿了,會重新整理到磁碟檔案中。它還儲存了最近寫入的序列號,以便讓系統知道到目前為止持久化的情況。
高位序列號作為元欄位儲存在每個HFile中,以反映持久化結束位置以及繼續執行的位置。在region啟動時,序列號被讀取後,然後最高位做為新編輯內容的序列號。
資料儲存在HFile中,其中包含排序的Key/Value。當MemStore累積足夠的資料時,整個已排序的KeyValue集將被寫入HDFS中的新HFile。這是一個順序寫入。它速度非常快,因為它避免了移動磁碟驅動器磁頭。
4、region:
表格可以水平劃分為一個或者多個region。早start key和end key之間包含連續的,排序的行範圍。
每個region小為1GB(預設)
表的region通過RegionServer為客戶端提供服務。
最初每個表格有一個區域。當一個region變得太大時,它會分裂成兩個子region。代表原region的一半的兩個子region,在相同的RegionServer上並行開啟,然後將分割槽報告給HMaster。由於負載平衡的原因,HMaster可以安排將新region移動到其他伺服器。
5、Hbase四個優點:
(1). 強一致性模型
(2). 自動擴充套件
(3). 內建恢復機制
(4). 整合Hadoop