淺析Hbase

無論是 NoSQL,還是大數據領域,HBase 都是非常"炙熱"的一門數據庫。本文將對 HBase 做一些基礎性的介紹,旨在入門。

一、簡介

HBase 是一個開源的、面向列的非關係型分佈式數據庫,目前是Hadoop體系中非常關鍵的一部分。在最初,HBase是基於谷歌的 BigTable 原型實現的,許多技術來自於Fay Chang在2006年所撰寫的Google論文"BigTable"。與 BigTable基於Google文件系統(File System)一樣,HBase則是基於HDFS(Hadoop的分佈式文件系統)之上而開發的。

HBase 採用 Java 語言實現,在其內部實現了BigTable論文提到的一些壓縮算法、內存操作和布隆過濾器等,這些能力使得HBase 在海量數據存儲、高性能讀寫場景中得到了大量應用,如 Facebook 在 2010年11 月開始便一直選用 HBase來作爲消息平臺的存儲層技術。HBase 以 Apache License Version 2.0開源,這是一種對商業應用友好的協議,同時該項目當前也是Apache軟件基金會的頂級項目之一。

有什麼特性

  • 基於列式存儲模型,對於數據實現了高度壓縮,節省存儲成本

  • 採用 LSM 機制而不是B(+)樹,這使得HBase非常適合海量數據實時寫入的場景

  • 高可靠,一個數據會包含多個副本(默認是3副本),這得益於HDFS的複製能力,由RegionServer提供自動故障轉移的功能

  • 高擴展,支持分片擴展能力(基於Region),可實現自動、數據均衡

  • 強一致性讀寫,數據的讀寫都針對主Region上進行,屬於CP型的系統

  • 易操作,HBase提供了Java API、RestAPI/Thrift API等接口

  • 查詢優化,採用Block Cache 和 布隆過濾器來支持海量數據的快速查找

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章