功能介绍
当新建 EMR 集群部署涉及元数据存储的组件时,系统支持以组件为粒度灵活独立配置各组件的元数据存储方式。您可以根据业务需求,将不同组件的元数据存储到同一个 MetaDB 实例中(默认行为),也可以将任意组件拆分到不同的 MetaDB 实例或自建 MySQL 数据库中,实现组件间的元数据存储隔离与独立治理。
涉及元数据存储的组件包括:Hive、Hue、Kylin、Oozie、Ranger、Superset、Amoro、Druid、Luoshu、Kyuubi、EG。
前提条件
自动创建(MetaDB)
1. 系统自动新购一个云数据库 MySQL 实例作为元数据存储单元,各组件默认共用该实例。
2. MetaDB 随集群销毁而销毁,元数据同步清理。若需保留元数据,请提前前往云数据库控制台手动备份。
3. MetaDB 支持选择 MySQL 或 TDSQL-C,并支持开启审计服务。
关联 EMR-MetaDB
1. 集群创建或新增组件时,可选择当前地域下已有 EMR 集群的 MetaDB 实例作为目标组件的元数据存储。
2. 可用 MetaDB 实例须来自同一账号下、已安装相同组件的 EMR 集群。
3. 关联的 EMR-MetaDB 不会随当前集群销毁而销毁,需前往云数据库控制台手动销毁。
4. 需确保关联的 EMR-MetaDB 与当前集群处于同一网络环境。
关联自建 MySQL 数据库
1. 支持关联用户自建的 MySQL 数据库作为元数据存储,无需单独购买 MetaDB。
2. 需填写以“jdbc:mysql://”开头的数据库连接地址、数据库名、用户名及密码。
3. 请确保自建数据库与 EMR 集群在同一网络下,不支持公网地址。
4. 确保自建 MySQL 中已初始化对应组件的元数据库表,且元数据版本不低于 EMR 集群中对应组件的版本。
5. 支持 MySQL 8.0,密码加密传输与存储,控制台不展示明文。
元数据存储方式
系统提供三种存储方式,每种方式可在组件粒度独立选择:
存储方式 | 说明 |
自动创建(MetaDB) | 系统自动新购一个云数据库 MySQL 实例,归属该分组的组件共用该实例。此为默认选项。 |
关联 EMR-MetaDB | 关联当前地域下已有 EMR 集群的 MetaDB 实例,跨集群共享元数据,不随当前集群销毁。 |
关联自建 MySQL | 填写外部 MySQL 连接信息,元数据存储于自建数据库中,完全由用户自行管理。 |
灵活搭配规则
1. 默认行为:所有涉及元数据存储的组件默认归入同一个“自动创建”分组,共用同一新购 MetaDB 实例。
2. 组件独立配置:每个组件可单独选择三种存储方式之一,实现组件间存储完全解耦。
3. 多组件共享:多个组件可归入同一分组,复用同一数据库实例。
4. 物理隔离:可为不同分组分别新购 MetaDB、关联不同 EMR-MetaDB 或配置不同自建 MySQL,实现 N 个组件的完全物理隔离。
5. 任意组合:以上规则可灵活叠加,满足各类业务需求。
使用场景
1. 故障隔离:将核心组件(如 Hive)与高频读写组件(如 Ranger、Oozie)的元数据拆分到不同数据库实例,避免单一实例故障影响多个组件。
2. 性能优化:Ranger 策略同步、Oozie 工作流等高频操作与 Hive 元数据查询分离,避免 I/O 争抢。
3. 安全合规:按安全域或业务组将不同组件元数据归属到不同数据库实例,满足数据审计与权限隔离要求。
4. 跨集群统一治理:多个 EMR 集群的同一组件(如 Ranger)关联同一 EMR-MetaDB,实现元数据集中管理与复用。
5. DBA 独立管理:不同组件元数据由不同 DBA 负责时,可分配到独立的自建 MySQL 实例,便于权限与运维分工。
能力边界与限制
1. 仅支持集群创建和后安装时配置:元数据存储方式仅可在新建集群或新增组件时选择。集群创建成功后,不支持在控制台修改已有组件的元数据存储方式。如需更换,需卸载组件后重新安装并重新配置。
2. 仅支持 EMR on CVM:本期功能支持 EMR on CVM 产品形态且仅支持 EMR3.7.0版本,EMR on TKE 暂不支持。
3. 组件范围固定:仅 Hive、Hue、Kylin、Oozie、Ranger、Superset、Amoro、Druid、Luoshu、Kyuubi、EG 等涉及元数据存储配置。其他组件(如 HDFS、YARN、Spark、Flink 等)不涉及外置元数据,不受此功能影响。
4. Hive 能力独立:Hive 组件保持其已有的独立元数据配置能力,交互逻辑不变。Hive 选择“自动创建”后,其余组件选择“自动创建”时仍指向集群 MetaDB,与 Hive 所选实例相互独立。
5. 存量集群向下兼容:功能上线前已创建的集群,所有组件元数据存储方式保持现状,无需重新配置。
风险提示与特别注意
以下内容涉及元数据初始化与数据安全,选择“关联 EMR-MetaDB”或“关联自建 MySQL”前请务必阅读。
关联外部数据库时,需自行确保表结构就绪
选择“关联 EMR-MetaDB”或“关联自建 MySQL”时,系统默认认为目标数据库中的元数据表结构已就绪,不会重复执行完整的建库建表流程。因此,关联前请确保目标数据库中已存在对应组件、对应版本的元数据表结构,否则组件将启动失败。
不同组件在关联外部数据库时的初始化要求存在差异,请特别注意:
组件初始化行为 | 涉及组件 | 用户需执行的操作 |
组件启动时自动完成表结构初始化 | Superset、Oozie、Kylin、Amoro、TCIceberg | 仅需提供一个空数据库(或确保数据库已存在),表结构由组件自动创建 |
系统不自动建库建表 | Hive、Hue、Kyuubi、Luoshu、EG | 需在关联前手动创建数据库并导入对应组件的元数据表结构 |
组件自身脚本完成初始化 | Ranger | 无论采用何种存储方式均无需用户额外操作 |
Hive 关联自建 MySQL 的特别注意
1. 关联自建 MySQL 前,需确保数据库中已初始化 Hive 元数据表,且元数据版本不低于集群中的 Hive 版本。
2. 若关联的自建 MySQL 中不含已初始化的 Hive 元数据表,将导致 HiveServer2 与 MetaStore 进程启动异常。
3. 初始化后如出现中文乱码等字符集问题,需检查并将相关表字段字符集调整为 UTF-8。详细修复方法可参见 Hive 元数据管理。
关联 EMR-MetaDB 的数据安全风险
1. 关联的 EMR-MetaDB 为跨集群共享实例,销毁该实例将导致所有关联集群对应组件的元数据永久丢失且无法恢复,销毁前请确认无其他集群依赖。
2. 关联实例需与当前集群处于同一网络环境,否则无法连通。
多组件共用同一实例的稳定性风险
当多个组件共用同一数据库实例时,高频读写组件(如 Ranger、Oozie)可能与其他组件产生 I/O 争抢,请确认实例规格满足并发读写需求。
密码与连通性
1. 自建 MySQL 连接密码加密传输与存储,控制台不展示明文,接口不返回明文密码字段。
2. 在提交前使用连通性检测功能(超时时间 10s)验证连接信息准确性。连接字段修改后需重新检测。
注意事项
1. 当 2 个及以上组件选择同一个 EMR-MetaDB 实例或自建 MySQL(同地址、端口、库名)时,系统会提示“已有 N 个组件使用该数据库实例,请确认实例规格满足并发读写需求,以免影响集群稳定性”。
2. 后安装组件选择“关联自建 MySQL” 时,系统提供连通性检测功能(超时时间 10s),建议在提交前完成连通性检测,确保连接信息准确;新建集群时不校验。
3. MetaDB 实例列表加载失败时,页面展示“加载失败,请刷新重试”,不影响其他配置项操作。
4. 同时配置多套“自动创建”时,系统将为每个“自动创建”分组独立新购一个 CDB 实例,请在确认配置前核对费用明细。
5. Ranger 组件部署选择“依赖组件”模式(使用其他集群的 Ranger)时,元数据存储无需考虑 Ranger 组件。
操作步骤
新建集群时配置元数据存储
1. 登录 腾讯云 EMR 控制台,进入 购买页。
2. 在“软件配置”步骤中,勾选需要部署的组件。当所选组件中包含涉及元数据存储的组件时,“区域与硬件配置”页面自动展示元数据存储配置区。
3. 如需将不同组件拆分到不同存储实例,单击“+新增存储分组”,在新增分组中选择目标组件并配置存储方式。
4. 各组件的存储方式可在“自动创建”、“关联 EMR-MetaDB”和“关联自建 MySQL”中灵活选择。
5. 确认配置无误后,继续完成后续购买步骤。
后安装组件时配置元数据存储
1. 登录 腾讯云 EMR 控制台,进入集群列表页,单击目标集群的集群 ID/名称。
2. 在集群详情页选择集群服务 > 新增组件,并勾选需安装的组件。
3. 当所选组件中包含涉及元数据存储的组件时,安装配置页自动展示元数据存储配置区。
4. 后安装组件默认归入第一个“自动创建”分组共用集群 MetaDB。如需独立配置,可单击“+新增存储分组”为组件指定独立的存储方式。
5. 页面将提示“安装完成后,该组件的元数据存储方式将无法修改”,请在此步骤确认配置。
6. 确认无误后完成安装。
查看集群元数据配置
1. 登录 腾讯云 EMR 控制台,进入集群列表页,单击目标集群的集群 ID/名称。
2. 在集群信息中,可查看“元数据配置”卡片,以只读形式展示集群内各组件的元数据存储方式、关联实例及规格信息。
3. 对于使用“自动创建”方式的组件的 MetaDB 实例,支持在卡片中重置 MetaDB 密码。