1. 程式人生 > >Hbase記錄-Hbase學習記錄

Hbase記錄-Hbase學習記錄

這樣的 需要 頂部 zookeeper 數據庫 服務 api lsp 特點

HBase是什麽?

HBase是建立在Hadoop文件系統之上的分布式面向列的數據庫。它是一個開源項目,是橫向擴展的。

HBase是一個數據模型,類似於谷歌的大表設計,可以提供快速隨機訪問海量結構化數據。它利用了Hadoop的文件系統(HDFS)提供的容錯能力。

它是Hadoop的生態系統,提供對數據的隨機實時讀/寫訪問,是Hadoop文件系統的一部分。

人們可以直接或通過HBase的存儲HDFS數據。使用HBase在HDFS讀取消費/隨機訪問數據。 HBase在Hadoop的文件系統之上,並提供了讀寫訪問。

HBase 和 HDFS

HDFSHBase
HDFS是適於存儲大容量文件的分布式文件系統。 HBase是建立在HDFS之上的數據庫。
HDFS不支持快速單獨記錄查找。 HBase提供在較大的表快速查找
它提供了高延遲批量處理;沒有批處理概念。 它提供了數十億條記錄低延遲訪問單個行記錄(隨機存取)。
它提供的數據只能順序訪問。 HBase內部使用哈希表和提供隨機接入,並且其存儲索引,可將在HDFS文件中的數據進行快速查找。

HBase的存儲機制

HBase是一個面向列的數據庫,在表中它由行排序。表模式定義只能列族,也就是鍵值對。一個表有多個列族以及每一個列族可以有任意數量的列。後續列的值連續地存儲在磁盤上。表中的每個單元格值都具有時間戳。總之,在一個HBase:

  • 表是行的集合。
  • 行是列族的集合。
  • 列族是列的集合。
  • 列是鍵值對的集合。

下面給出的表中是HBase模式的一個例子。

RowideColumn FamilyColumn FamilyColumn FamilyColumn Family
col1col2col3col1col2col3col1col2col3col1col2col3
1
2
3

面向列和面向行

面向列的數據庫是存儲數據表作為數據列的部分,而不是作為行數據。總之它們擁有列族。

行式數據庫列式數據庫
它適用於聯機事務處理(OLTP)。 它適用於在線分析處理(OLAP)。
這樣的數據庫被設計為小數目的行和列。 面向列的數據庫設計的巨大表。

下圖顯示了列族在面向列的數據庫:

技術分享

HBase 和 RDBMS

HBaseRDBMS
HBase無模式,它不具有固定列模式的概念;僅定義列族。 RDBMS有它的模式,描述表的整體結構的約束。
它專門創建為寬表。 HBase是橫向擴展。 這些都是細而專為小表。很難形成規模。
沒有任何事務存在於HBase。 RDBMS是事務性的。
它反規範化的數據。 它具有規範化的數據。
它用於半結構以及結構化數據是非常好的。 用於結構化數據非常好。

Base的特點

  • HBase線性可擴展。
  • 它具有自動故障支持。
  • 它提供了一致的讀取和寫入。
  • 它集成了Hadoop,作為源和目的地。
  • 客戶端方便的Java API。
  • 它提供了跨集群數據復制。

在哪裏可以使用HBase?

  • Apache HBase曾經是隨機,實時的讀/寫訪問大數據。
  • 它承載在集群普通硬件的頂端是非常大的表。
  • Apache HBase是此前谷歌Bigtable模擬非關系型數據庫。 Bigtable對谷歌文件系統操作,同樣類似Apache HBase工作在Hadoop HDFS的頂部。

HBase的應用

  • 它是用來當有需要寫重的應用程序。
  • HBase使用於當我們需要提供快速隨機訪問的數據。
  • 很多公司,如Facebook,Twitter,雅虎,和Adobe內部都在使用HBase。

在HBase中,表被分割成區域,並由區域服務器提供服務。區域被列族垂直分為“Stores”。Stores被保存在HDFS文件。下面顯示的是HBase的結構。

註意:術語“store”是用於區域來解釋存儲結構。

技術分享

HBase有三個主要組成部分:客戶端庫,主服務器和區域服務器。區域服務器可以按要求添加或刪除。

主服務器

主服務器是 -

  • 分配區域給區域服務器並在Apache ZooKeeper的幫助下完成這個任務。
  • 處理跨區域的服務器區域的負載均衡。它卸載繁忙的服務器和轉移區域較少占用的服務器。
  • 通過判定負載均衡以維護集群的狀態。
  • 負責模式變化和其他元數據操作,如創建表和列。

區域

區域只不過是表被拆分,並分布在區域服務器。

區域服務器

區域服務器擁有區域如下 -

  • 與客戶端進行通信並處理數據相關的操作。
  • 句柄讀寫的所有地區的請求。
  • 由以下的區域大小的閾值決定的區域的大小。

需要深入探討區域服務器:包含區域和存儲,如下圖所示:

技術分享

存儲包含內存存儲和HFiles。memstore就像一個高速緩存。在這裏開始進入了HBase存儲。數據被傳送並保存在Hfiles作為塊並且memstore刷新。

Zookeeper

  • Zookeeper管理是一個開源項目,提供服務,如維護配置信息,命名,提供分布式同步等
  • Zookeeper代表不同區域的服務器短暫節點。主服務器使用這些節點來發現可用的服務器。
  • 除了可用性,該節點也用於追蹤服務器故障或網絡分區。
  • 客戶端通過與zookeeper區域服務器進行通信。
  • 在模擬和獨立模式,HBase由zookeeper來管理。

Hbase記錄-Hbase學習記錄