本文为您介绍E-MapReduce(简称EMR)支持的元数据类型和各元数据类型的优势。

元数据类型介绍

EMR Hive元数据支持DLF统一元数据、自建RDS和内置MySQL三种类型。

DLF统一元数据

元数据存储在阿里云数据湖构建(Data Lake Formation,简称DLF)中。数据湖构建具有高可用、免运维和高性能等优点,兼容Hive Metastore,无缝对接EMR上开源计算引擎,并支持元数据多版本管理和Data Profile功能。另外,DLF还支持数据探索、湖管理和数据权限控制等功能,并与阿里云其他计算产品(例如MaxCompute、Databricks和Hologres等)无缝对接,可以扩展更丰富的计算场景,DLF详情请参见产品简介

该元数据类型相比自建RDS和内置MySQL两种方式的最大区别是,无需在EMR集群上部署Hive Metastore,即元数据查询服务以及存储服务都托管到DLF产品上,免去运维成本,同时支持更多引擎(例如MaxCompute、Flink、DataBricks或Hologres等),进一步实现湖仓一体共享元数据,在多个集群上也能够实现元数据共享。DLF Client SDK提供了兼容Hive Metastore的接口,这样引擎基本不做任何改动就可以直接使用DLF Client SDK,进而访问DLF元数据。用户也可以直接使用DLF客户端访问DLF元数据。

图 1. DLF统一元数据在单集群部署架构图
DLF统一元数据在单集群部署架构图
图 2. DLF统一元数据在多集群部署架构图
DLF统一元数据在多集群部署架构图

自建RDS

元数据存储在RDS中。自建RDS元数据类型和内置MySQL类型在架构上是一致的,区别只是存储由本地的MySQL,变成了RDS(云上的MySQL)。如自建RDS在多集群部署架构图所示,在多个集群环境中,RDS支持跨多个集群元数据共享,分别被不同集群中的Hive Metastore访问。

图 3. 自建RDS在单集群部署架构图
自建RDS在单集群部署架构图
图 4. 自建RDS在多集群部署架构图
自建RDS在多集群部署架构图

内置MySQL

元数据存储在MySQL中,且MySQL Server实例部署在用户的EMR集群中(通常是Master节点),Hive、Spark或Presto等引擎访问元数据时,也不是直接访问MySQL,而是通过访问Hive Metastore间接访问MySQL。Hive Metastore提供元数据访问服务,引擎通过thrift协议访问Hive Metastore,Hive Metastore通过JDBC协议访问MySQL。

当然您也可以手动通过MySQL客户端直接连接MySQL Server,查看元数据。如内置MySQL在多集群部署架构图所示,由于每个集群都有一个MySQL,导致多个集群间的元数据不能共享。

图 5. 内置MySQL在单集群部署架构图
Cluster
图 6. 内置MySQL在多集群部署架构图
1

元数据类型优势

内置MySQL和自建RDS的区别

自建RDS更直观的好处是元数据可以在多个集群间共享。

从可用性、可靠性和性能等方面对比,自建RDS要优于内置MySQL,详情请参见RDS与自建数据库对比优势

DLF统一元数据和自建RDS的区别

对比项 DLF统一元数据 自建RDS
易用性 EMR集群开箱即用(需提前开通DLF产品)。 EMR集群开箱即用(需提前购买RDS)。
元数据管理 DLF产品提供了可视化的元数据检索、元数据管理、多版本管理、数据统计概况和生命周期管理等更丰富的能力。 无。
多引擎支持
  • 支持Hive、Spark和Presto。
  • 支持MaxCompute和Hologres。
  • 支持Hive、Spark和Presto。
  • 不支持MaxCompute和Hologres。
成本 免费,具体计费请参见数据湖构建的计费模式 包月和按量计费。
运维成本 免运维,自动水平弹性扩容。 需要进行升级和扩容等运维操作。
高可用 主备等容灾措施。 主备等容灾措施。
性能 性能高,同时基于Hive Metastore进行了优化。 性能高,对Hive Metastore无优化。
更多能力 细粒度数据权限控制、湖存储分析和湖格式管理。 无。

非EMR集群访问DLF元数据

非EMR集群(本地测试环境或者其它云服务)访问DLF元数据,需要集成DLF Client SDK,具体操作请参见阿里云数据湖构建(DLF)

说明 访问DLF和访问MySQL一样,需要提供访问地址、用户名和密码。
  • DLF中的访问地址称为Endpoint,不同region使用不同的Endpoint。
  • 用户名和密码为DLF产品的AccessKey ID和AccessKey Secret。
  • 您还需要通过修改Hive参数的方式,切换Hive MetaStore的存储方式。

    在Hive服务页面,修改参数hive.imetastoreclient.factory.class的值为com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory。修改配置项的具体操作请参见修改组件参数