EMR 与 HBase

2019/08/15 EMR

EMR 与 HBase

EMR 与 HBase 产品形态

EMR 与 HBase 主要有2种形态:

1、HBase 作为一个组件,存在与 EMR 中

2、HBase 作为单独的服务,直接提供服务

当然如果是第2种可能更多的还需要结合第一种形态使用。

比如 Bulkload/Spark 分析等 是EMR 一套集群,HBase 是一套集群

云商家 EMR 与开源的关系说明:

亚马逊:

基于开源,是否修改代码未知,推测可能会修改支持S3相关的内容。

Microsoft Azure HDInsight:

基于 HDP 版本,目前最新是 HDInsight 4.0, 前者基于Hortonworks 数据平台 3.0

默认是HDInsight 3.6(默认),前者基于Hortonworks 数据平台 2.6

阿里云:

我们基于开源 Hadoop 的版本,在完全不改变原有接口的基础上,加入了我们的 emr-core 组件,深度支持阿里云的 OSS。这个组件的版本会跟在 Hadoop 版本后。

腾讯云:

弹性 MapReduce 结合云技术和 Hadoop、Hive、Spark、Storm 等社区开源技术,为您提供安全、低成本、高可靠、> 可弹性伸缩的云端 Hadoop 服务。

应该是基于开源。

华为云:

MRS服务拥有强大的Hadoop内核团队,基于华为FusionInsight大数据企业级平台构筑。

天翼云:

MRS 基于开源软件 Hadoop 进行功能增强、Spark 内存计算引擎、HBase 分布式存储数据 库以及 Hive 数据仓库框架,提供海量数据的分析计算与存储能力。

云厂商 EMR 组件版本信息

组件 亚马逊 微软 阿里云 腾讯云 华为云 天翼云
产品 EMR HDInsight E-MapReduce 弹性 MapReduce MapReduce 服务 MapReduce 服务
版本 emr-5.25.0 HDInsight 4.0 EMR-3.20.0 EMR-V2.1.0 MRS 2.0.1 版本未知
更新时间 2019.5 2019.7 2019.7 2019.5 2019.6 未知
迭代周期 每月 未知 每月 1-2月 2月左右 未知
Hadoop 2.8.5 3.1.1 2.8.5 2.8.4 3.1.1 2.7.2
HBase 1.4.9 2.0.1 1.4.9 1.3.1 2.1.1 1.0.2
Hive 2.3.5 3.1.0 3.1.1 2.3.3 3.1.0 1.2.1
Spark 2.4.3 2.3.1/2.4 2.4.2 2.3.2 2.3.2 2.1.0
Presto 0.220 N/A 0.213 0.215 308 N/A
Tez 0.9.2 0.9.1 0.9.1 0.8.5 0.9.1 N/A
Zookeeper 3.4.14 3.4.6 3.4.13 3.4.9 N/A N/A
Flink 1.8.0 N/A 1.7.2 1.4.2 N/A N/A
Kafka N/A 1.1.1/2.1.1 2.11 N/A 1.1.0 版本未知
Storm N/A N/A 1.2.2 1.1.0 1.2.1 版本未知
Flume 1.8.0 N/A 1.8.0 1.6.0 版本未知  
Hue 4.4.0 N/A 4.1.0 4.4.0 3.11.0 版本未知
Phoenix 4.14.1 5.0 4.14.1 N/A N/A N/A
Sqoop 1.4.7 1.4.7 1.4.7 1.4.7 N/A N/A
Oozie 5.1.0 4.3.1 5.1.0 4.3.1 N/A N/A
Ranger N/A 1.1.0 1.2.0 0.7.1 N/A N/A
Tensorflow 1.13.1 1.8.0 N/A N/A N/A  
MXNet 1.4.0 N/A N/A N/A N/A  
Mahout 0.13.0 N/A N/A N/A 0.7.1 N/A
Impala N/A N/A 2.12.2 N/A N/A N/A
Druid N/A N/A 0.13.0 N/A N/A N/A
Pig N/A 0.17.0 0.14.0 N/A N/A N/A
Alluxio N/A N/A N/A 1.8.1 N/A N/A
Loader N/A N/A N/A N/A 2.0.0 版本未知
Livy 0.6.0 0.5 0.6.0 N/A N/A N/A
Zeppelin 0.8.1 0.8.0 0.8.1 N/A N/A N/A
Ganglia N/A 3.7.2 3.7.2 3.7.2 N/A N/A
Apache Ambari N/A 2.7.0 N/A N/A N/A N/A
JupyterHub N/A 0.9.6 N/A N/A N/A N/A
Jupyter N/A N/A 4.4.0 N/A N/A N/A
Knox N/A N/A 1.1.0 N/A N/A N/A
Apache DS N/A N/A 2.0.0 N/A N/A N/A
Analytics Zoo N/A N/A 0.2.0 N/A N/A N/A
Superset N/A N/A 0.28.1 N/A N/A N/A
OS 版本未知 版本未知 CentOS 7.4 版本未知 版本未知 版本未知
组件 亚马逊 微软 阿里云 腾讯云 华为云 天翼云

HBase 是否单独作为产品?

组件 阿里云 华为云 腾讯云 天翼云 亚马逊 亚马逊
产品 云数据库 HBase 版 表格存储服务 CloudTable N/A N/A N/A N/A

注意

N/A 表示无;版本未知表示有此组件,但不清楚具体版本

统计时间为2019.8.16,有些云厂商有多个版本分支同时进行,这里只列出的最新主干分支

*Loader 可能是华为提供的基于 Flume 的工具 *

EMR 与 HBase 产品形态

亚马逊、阿里云、华为云、腾讯云、天翼云 EMR产品中均包含 HBase 组件。

腾讯云之前除了EMR提供,还单独提供了云HBase,后来又取消了,以弹性MapReduce提供,主要原因是HBase 通常会和Hadoop其他组件结合使用。

阿里云提供云数据库HBase版,放在了云计算基础 NOSQL 数据库

华为云提供CloudTable其实就是HBase,放在EI企业智能,为什么放在这块主要是组织架构原因,MapReduce 服务也是放在这边。

HBase 是否适合提供云服务

HBase 功能方面

提供分布式 NOSQL 存储,高性能的写吞吐,还不错的读能力。业务场景也是比较丰富的,需求应该是一直在的。

HBase 架构方面

HBase 是分布式的、计算存储分离的,本身是比较适合提供云服务的。

HBase 应用场景

物联网、明细记录、消息日志类、用户画像标签、金融风控、社交消息feed流、监控、小对象存储(视频、图片)、时序时空、海量实时分布式存储。

如笔者公司使用HBase 存储手机详单数据,最大存储单表近2PB(单副本GZIP压缩后)。

HBase 生态

与Phoenix 结合提供SQL、二级索引;与 OpenTSDB 结合提供时序;GeoMesa 结合提供时空数据库功能;与 HGraphDB 结合提供图数据库功能;与 Kylin 结合提供 MOLAP;Spark 结合提供分析功能;Hive 其实也可以映射HBase 表来使用;还可与 Solr 结合提供全文索引功能。更多生态可以参考:awesome-hbase

问题:

1、本身没有独立的存储,依赖 HDFS,所以通常需要维护一套HDFS 系统

2、依赖 ZK ,需要维护一套 ZK。

以上2点不像类似 MongoDB 和 Cassandra 不依赖与其他外部组件,部署维护其他相对比较简单,HBase 复杂度会高很多,部署以及维护的成本也大。 虽然架构上面是计算存储分离的,但是存储这块与云存储结合并不是很好,虽然架构上计算存储分离,相比也比较适合云原生,但云原生的“不纯粹” 。 虽然 HBase 一直在去ZK和HDFS,也在推动支持更多的文件系统,比如S3,但仍然任重道远。 如 AWS 中使用 HBase + S3,仍然需要部署一套 HDFS 系统,原因是S3不支持 flush/hflush 接口,而前者是 HBase 写 WAL 需要依赖的。

具体可参考 HBase on Amazon S3

3、自身功能方面:目前 HBase 并没有内置SQL、二级索引等易于使用的功能,这块还是依赖生态组件来解决。这点往往会带来设计和使用上面的复杂度。 这点上 与 MongoDB 和 Cassandra 相比,差了很多。

4、易用性:HBase 对使用者有一点的要求,比如对rowkey设计,预先分区等;而且提供的 原生 API 也比较原始往往通过API 的 get/scan/put/delete 接口实现。与常规的数据库 SQL select/insert/update/delete 易用性差距还很大。

5、稳定性:HBase 稳定性这块相比其他数据库差距还是很明显的。

链接

AWS EMR :https://docs.aws.amazon.com/zh_cn/emr/latest/ReleaseGuide/emr-release-5x.html

Microsfot Azure HDInsight : https://azure.microsoft.com/en-us/services/hdinsight/

Microsfot Azure HDInsight 版本: https://docs.microsoft.com/zh-cn/azure/hdinsight/hdinsight-component-versioning

阿里云 E-MapReduce :https://help.aliyun.com/product/28066.html?spm=a2c4g.11174283.6.540.722b3d79Tt6gVH

华为云 MapReduce服务 :https://support.huaweicloud.com/productdesc-mrs/mrs_08_0005.html

腾讯云 弹性MapReduce :https://cloud.tencent.com/document/product/589/20279

天翼云 MapReduce服务 :https://www.ctyun.cn/help/list/1407

华为云 表格存储服务 CloudTable https://www.huaweicloud.com/product/cloudtable.html

阿里云 云数据库 HBase 版 https://cn.aliyun.com/product/hbase?spm=a2c4g.11186623.cwnn_jpze.64.125b40acDBGNlH

Search

    Post Directory