EMR-3.30.0及之后版本和EMR-4.5.0及之后版本,默认选择数据湖元数据作为Hive数据库。数据湖元数据是服务化高可用并且可扩展的元数据库,您无需额外购买独立的元数据库,就可以实现多个引擎计算,例如同时使用MaxCompute和E-MapReduce(简称EMR)。多个EMR集群可以共享统一元数据库。

前提条件

已在数据湖构建(Data Lake Formation)控制台开通数据湖构建。
注意 数据湖元数据产品目前只支持华北2(北京)、华东1(上海)和华东2(杭州)三个地域。

背景信息

数据湖元数据已适配EMR的Hive 2.x、Hive 3.x、Presto和SparkSQL。因为数据湖元数据暂不适配EMR的Impala,所以当您在EMR控制台上勾选Impala时,无法选择数据湖元数据。

适用场景

数据湖元数据具有高可用和易维护的特点,因此适合在如下场景下使用数据湖元数据:
  • EMR集群的生产环境,您无需维护独立的元数据库。
  • 横向使用多种大数据计算引擎,例如MaxCompute、Hologres、机器学习PAI等,元数据可以集中管理。
  • 多个EMR集群,可以统一管理元数据。

创建集群

创建集群时,选择元数据选择数据湖元数据方式,创建详情请参见创建集群

切换元数据存储类型

您可以通过修改Hive参数的方式,切换Hive MetaStore的存储方式。
说明 如果需要迁移数据库的元数据信息,请提交工单处理。
  1. 进入Hive服务页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,选择集群服务 > Hive
  2. 修改hive.imetastoreclient.factory.class的值。
    1. 在Hive服务页面,单击配置页面。
    2. 在配置搜索中,输入配置项hive.imetastoreclient.factory.class,单击search图标。
      • 切换为MySQL(包括集群内置MySQL、统一meta数据库和独立RDS MySQL):

        设置hive.imetastoreclient.factory.classorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory

      • 切换为数据湖元数据:

        设置hive.imetastoreclient.factory.classcom.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory

  3. 保存配置。
    1. 在Hive服务页面,单击右上角的保存
    2. 确认修改对话框中,输入执行原因,单击确定
  4. 重启Hive MetaStore服务。
    1. 在Hive服务页面,选择右上角的操作 > 重启Hive MetaStore
    2. 执行集群操作对话框,设置相关参数,然后单击确定
    3. 确认对话框,单击确定
      您可以单击右上角的查看操作历史,查看任务进度,等待任务完成。