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版本。