回覆列表
  • 1 # 使用者3070344685760

    HBase

    HBase是一個高可靠、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可以在廉價PC上搭建起大規模結構化儲存叢集。

    HBase是Google Bigtable的開源實現,類似於Google Bigtable利用GFS作為其檔案儲存系統,HBase利用Hadoop HDFS作為其檔案儲存系統;Google執行MapRecue來處理Bigtable中的海量資料,HBase同樣利用Hadoop MapRecue來處理HBase中的海量資料;Google Bigtable利用Chubby作為協同服務,HBase利用Zookeeper作為對應。

    特性:

    強一致性讀寫:HBase不是“Eventual Consistentcy(最終一致性)”資料儲存,這讓它很適合高速計數聚合類任務;

    自動分片(Automatic sharding):HBase表透過region分佈在叢集中,資料增長時,region會自動分割並重新分佈;

    RegionServer自動故障轉移

    Hadoop/HDFS整合:HBase支援開箱即用HDFS作為它的分散式檔案系統;

    MapRecue:HBase透過MapRecue支援大併發處理;

    Java客戶端API:HBase支援易於使用的Java API進行程式設計訪問;

    Thrift/REST API:HBase也支援Thrift和Rest作為非Java前端訪問;

    Block Cache和Bloom Filter:對於大容量查詢最佳化,HBase支援Block Cache和Bloom Filter;

    運維管理:HBase支援JMX提供內建網頁用於運維。

    HBase應用場景

    HBase不適合所有場景。

    首先,確信有足夠多資料,如果有上億或上千億行資料,HBase是很好的備選。如果只有上千或上百萬行,則用傳統的RDBMS可能是更好的選擇。因為所有資料如果只需要在一兩個節點進行儲存,會導致叢集其他節點閒置。

    其次,確信可以不依賴於RDBMS的額外特性。例如,列資料型別、第二索引、事務、高階查詢語言等

    最後,確保有足夠的硬體。因為HDFS在小於5個數據節點時,基本上體現不出來它的優勢。

    雖然HBase能在單獨的筆記本上執行良好,但這應僅當成是開發階段的配置 。

    HBase的優點

    列可以動態增加,並且列為空就不儲存資料,節省儲存空間;

    HBase可以自動切分資料,使得資料儲存自動具有水平擴充套件功能;

    HBase可以提供高併發讀寫操作的支援;

    與Hadoop MapRecue相結合有利於資料分析;

    容錯性;

    非常靈活的模式設計(或者說沒有固定模式的限制);

    可以跟Hive整合,使用類SQL查詢;

    自動故障轉移;

    客戶端介面易於使用;

    行級別原子性,即PUT操作一定是完全成功或者完全失敗。

    HBase的缺點

    不能支援條件查詢,只支援按照row key來查詢;

    容易產生單點故障(在只使用一個HMaster的時候);

    不支援事務;

    JOIN不是資料庫層支援的,而需要用MapRecue;

    只能在主鍵上索引和排序;

    沒有內建的身份和許可權認證;

    HBase與Hadoop/HDFS的差異

    HDFS是分散式檔案系統,適合儲存大檔案。官方宣稱它並非普通用途的檔案系統,不提供檔案的個別記錄的快速查詢。另一方面,HBase基於HDFS,並能夠提供大表的記錄快速查詢和更新。HBase內部將資料放到索引好的“StoreFiles”儲存檔案中,以便提供高速查詢,而儲存檔案位於HDFS中。

  • 中秋節和大豐收的關聯?
  • 海爾洗衣機脫水顯示E2叫?