HBase簡介及應用

文章整理:加米穀大數據

自1970年以來,關係數據庫用於數據存儲和維護有關問題的解決方案。大數據的出現後,好多公司實現處理大數據並從中受益,並開始選擇像Hadoop 的解決方案。 Hadoop使用分佈式文件系統,用於存儲大數據,並使用MapReduce來處理。Hadoop擅長於存儲各種格式的龐大的數據,任意的格式甚至非結構化的處理。 Hadoop的限制 Hadoop只能執行批量處理,並且只以順序方式訪問數據。這意味著必須搜索整個數據集,即使是最簡單的搜索工作。 當處理結果在另一個龐大的數據集,也是按順序處理一個巨大的數據集。在這一點上,一個新的解決方案,需要訪問數據中的任何點(隨機訪問)單元。 Hadoop隨機存取數據庫 應用程序,如HBase, Cassandra, couchDB, Dynamo 和 MongoDB 都是一些存儲大量數據和以隨機方式訪問數據的數據庫。 HBase是什麼? HBase是建立在Hadoop文件系統之上的分佈式面向列的數據庫。它是一個開源項目,是橫向擴展的。 HBase是一個數據模型,類似於谷歌的大表設計,可以提供快速隨機訪問海量結構化數據。它利用了Hadoop的文件系統(HDFS)提供的容錯能力。 它是Hadoop的生態系統,提供對數據的隨機實時讀/寫訪問,是Hadoop文件系統的一部分。 人們可以直接或通過HBase的存儲HDFS數據。使用HBase在HDFS讀取消費/隨機訪問數據。 HBase在Hadoop的文件系統之上,並提供了讀寫訪問。

HBase簡介及應用

HBase 和 HDFS

HBase簡介及應用

HBase的存儲機制

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

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

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

HBase簡介及應用

面向列和麵向行

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

HBase簡介及應用

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

HBase簡介及應用

HBase 和 RDBMS

HBase簡介及應用

HBase的特點

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

在哪裡可以使用HBase?

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

HBase的應用

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

HBase 歷史

HBase簡介及應用


分享到:


相關文章: