1. 程式人生 > >[Hbase]Hbase章1 Hbase框架及基本概念

[Hbase]Hbase章1 Hbase框架及基本概念

Hbase框架介紹

HBase是一個分散式的、面向列的開源資料庫。

不同點:

l  和一般的關係資料庫不同,hbase是一個適合於非結構化資料儲存的資料庫。

l  Hbase是基於列而不是基於行的模式。

 

在分散式的生產環境中,HBase 需要執行在 HDFS 之上,以 HDFS 作為其基礎的儲存設施。HBase上層提供了訪問的資料的 Java API 層,供應用訪問儲存在 HBase 的資料。在 HBase 的叢集中主要由 Master 和 Region Server 組成,以及 Zookeeper,

基本概念:

l  RowKey

是Byte array,是表中每條記錄的“主鍵”,方便快速查詢,Rowkey的設計非常重要;

l  Timestamp

版本號,型別為Long,預設值是系統時間戳,可由使用者自定義

l  ColumnFamily

列族,擁有一個名稱(string),包含一個或者多個相關列

l  Column

屬於某一個columnfamily,familyName:columnName,每條記錄可動態新增

l  Value(Cell)

單元格由行鍵、列族、時間戳唯一決定

單元格的資料是沒有型別的,全部以位元組碼形式儲存

Hbase組成

l  Master

Hmaster用於調整多個regionServer,偵測各個regionServer之間的狀態,並平衡regionServer之間的負載。Hmaster還有一個職責就是分配region給regionServer。

Hmaster允許多個Hmaster節點共存,但是這需要Zookeeper的協助。不過當多個Hmaster節點共存時,只有一個Hmaster是提供服務的,其它的Hmaster節點處於待命的狀態。當正在工作的Hmaster節點宕機時,其它的Hmaster則會接管Hbase叢集。

l  RegionServer

對於一個regionServer而言,其包括了多個region。regionServer的作用只是管理表格,以及實現讀寫操作。Client直接連線regionServer,並通訊獲取Hbase中的資料。

l  Region

Region是hbase中分散式儲存和負載均衡的最小單位,但不是最小的儲存單元。如個一個表格很大,並由多個CF組成時,那個表的資料將存放在多個region中,並且每個region會關聯多個儲存單元store。表在行方向分割為多個region,region是按大小分割的,隨著region不斷增大,當增大到一個閥值的時候,region就會分成兩個region。

l  Store

每個region中包含了多個store物件,一個store包含一個memstore和若干個storefile,storefile中包含一個或多個hfile。Memstore存放在記憶體中,storefile存放在hdfs上。

l  Hfile

Hfile由很多個數據塊(block)組成,並且有一個固定的結尾塊。其中的資料塊是由一個header和多個key-value的鍵值對組成。在結尾塊中包含了資料相關的索引資訊,系統也是通過結尾塊的索引資訊找到hfile中的資料。