DataServing是阿里云E-MapReduce提供的基于Apache HBase的數據服務集群類型。本文為您介紹數據服務集群支持的特性,適用場景以及技術架構。

特性介紹

Apache HBase是具有高可靠性、高性能、列存儲、可伸縮、實時讀寫的開源NoSQL分布式系統。特別適用于需要實時讀寫隨機訪問超大規模數據集的場景。

Apache HBase和Apache Hadoop生態系統無縫集成,并且可以和Apache Phoenix搭配使用以對HBase表進行類似于SQL的查詢。

Apache HBase基于HDFS作為底層存儲系統,在云上的場景可以使用對象存儲(例如OSS)來提供更好的靈活性以及更低的成本。

Apache HBase支持海量數據存儲,具有很高的存儲和計算擴展性,以及很好的讀寫性能,支持動態列、數據多版本存儲,以及數據的生命周期管理等特點。

適用場景

基于Apache HBase的優勢和特點,DataServing適用于以下場景:
  • 風控或畫像等需要支持動態列的場景。
  • 圖片、視頻、網頁等中對象,物聯網的時序數據和車聯網的空間數據等需要支持海量數據和較高寫入性的數據存儲場景。
  • DataServing基于讀寫延遲低,并發高等特點,支持Feed流場景。

技術架構

EMR HBase目前支持兩種架構,一種是傳統的基于HDFS存算一體架構,另外一種是基于OSS-HDFS服務的存算分離架構,詳情請參見JindoData概述OSS-HDFS服務概述

DataServing-Hbase

上圖是一個基于OSS-HDFS服務的存算分離架構,圖中EMR是一個已安裝HBase和HDFS等組件的EMR集群。

  • EMR HBase的HFile和表的元數據都存儲到OSS-HDFS中,EMR HBase通過JindoData來訪問存儲在OSS-HDFS上的數據。
  • Core節點除了部署HBase進程和JindoData進程外,還會部署HDFS進程用于存儲HBase的WAL數據,Core節點不支持自由伸縮。
  • Task節點上除了部署HBase進程和JindoData進程外,不會部署HDFS進程,Task節點支持自由伸縮。
  • Core節點和Task節點的HBase RegionServer將數據塊緩存在節點內存或本地磁盤中。如果緩存在本地盤,需要開啟Bucket Cache。
  • EMR HBase存算分離架構下,除了HBase自身的Block Cache外,還支持基于Jindofsx分布式緩存服務來充分利用集群本地磁盤來加速讀訪問。
存算分離優勢如下:
  • 更低的存儲成本:OSS存儲。
  • 更低的運維成本:存儲全托管。
  • 支持彈性伸縮:按需擴縮容計算資源。
  • 更容易升級:無狀態(HBase表的元數據和數據存在OSS中,本地只有計算,升級版本時不用考慮數據遷移問題),更容易升級HBase版本。