
Hive 元数据随业务增长呈爆炸式膨胀,导致查询延迟增大、并发阻塞等问题。腾讯云 EMR 提供统一元数据库实现多集群元数据共享,结合冷热分层存储和存算分离架构,降低元数据管理压力和存储成本。
在 Hadoop 生态中, Hive MetaStore 负责存储所有表、分区以及数据库的元数据信息。随着企业数据规模持续扩大,元数据本身也在呈爆炸式增长,给 MetaStore 服务带来多重压力。
在业务快速发展的场景下, Hive 表的分区数量可以达到百万甚至千万级别。每个分区都会在 MetaStore 中产生相应的元数据记录,当分区数量持续增长时,元数据查询和维护变得困难。
元数据库表设计采用三范式,表的外键很多、关联很多。以 PARTITIONS 表为中心的 ER 结构涉及多个关联表,每次查询库表分区信息时需要关联多张表,查询时延会随着数据量增大而增加。
当元数据规模达到较大量级时,以下情况会导致查询性能下降:
使用本地 MySQL 作为 Hive 元数据库时,元数据存储于集群节点上,当集群销毁时,元数据也会随之删除。对于按需创建和销毁的集群场景,每次都需要手动导出和导入元数据,操作繁琐且存在数据丢失风险。
腾讯云弹性 MapReduce ( EMR )在配置 Hive 组件时,提供了两种 Hive 元数据存储方式,其中关联外部元数据库的方案可以有效解决元数据压力和共享问题。
EMR 集群部署 Hive 组件时,系统提供以下元数据存储方式:
存储方式 | 元数据存储位置 | 集群销毁后元数据 | 适用场景 |
|---|---|---|---|
自动创建 | 集群独立购买的 MetaDB 实例 | 随集群销毁而销毁 | 测试开发环境 |
关联 EMR-MetaDB | 已有的 MetaDB 实例 | 独立保存,不随集群销毁 | 生产环境、多集群共享 |
关联自建 MySQL | 用户自建 MySQL 数据库 | 独立保存,不随集群销毁 | 已有 MySQL 基础设施 |
选择关联 EMR-MetaDB 或自建 MySQL 作为 Hive 元数据库,可以获得以下能力:
元数据独立持久化。 Hive 元数据存储于关联的数据库中,不随集群销毁而销毁。当需要释放集群或调整集群配置时,元数据始终保留,无需手动导出和导入。
多集群共享元数据。多个 EMR 集群可以关联同一个元数据库,实现跨集群的元数据共享。当数据存放于统一对象存储(如 COS 或 CHDFS )时,多个集群可以同时访问同一数据集,无需进行数据迁移或元数据重构。
降低元数据管理成本。无需为每个集群单独购买 MetaDB 实例存储 Hive 元数据,已有 MetaDB 可以被多个集群共用,减少资源重复购买。
元数据可靠性保障。将 Hive 元数据存放于 MetaDB 时,元数据可靠性可达 99.9996%,保障元数据的安全。
在 EMR 控制台创建集群时,选择 Hive 组件后,可以在配置页面选择元数据库存储方式。选择"关联 EMR-MetaDB"时,系统会拉取云上可用的 MetaDB 实例供选择。确保关联的 EMR-MetaDB 与新建集群在同一网络环境下。
对于未安装 Hive 组件的已有集群,可以通过新增组件的方式安装 Hive ,并在安装过程中选择关联外部元数据库。
随着数据积累,存储成本逐渐成为大数据平台的重要开支。 EMR 支持多种存储策略,通过冷热分层方案降低存储成本。
EMR 支持将计算资源和存储资源分开部署。数据可以存放于对象存储 COS 或云 HDFS ( CHDFS ),集群本身作为计算资源,可以根据业务需求创建或销毁,无需进行元数据迁移。
存算分离架构的优势包括:
对于仍在使用 HDFS 存储数据的场景, EMR 支持 HDFS 存储策略,通过不同类型存储介质的搭配实现冷热数据分层。
HDFS 存储类型包括:
存储类型 | 介质说明 | 适用场景 |
|---|---|---|
DISK | 普通机械硬盘 | 默认存储类型 |
SSD | 高速固态硬盘 | 频繁访问的热数据 |
ARCHIVE | 高密度归档存储 | 极少访问的冷数据 |
RAM_DISK | 内存存储 | 临时中间计算结果 |
对应的存储策略包括:
EMR 支持根据数据的访问时间自动调整存储策略。对于启用智能策略的目录,在指定周期内没有访问记录的子目录会被自动降级存储策略等级。
具体逻辑为:热数据存储策略为 Hot ,温数据存储策略为 Warm ,冷数据存储策略为 Cold 。通过智能调度,热数据保持在高性能存储介质上,冷数据自动沉降到低成本存储介质,在保障性能的同时降低存储成本。
在实际业务中,数据的访问频率通常随时间衰减。以离线数据分析场景为例,当天产生的数据在随后几天内会被频繁查询,而一周前的数据访问频率明显下降。
基于此特点,可以将数据按访问频率划分为热数据和冷数据:
冷数据迁移到 COS 后,仍可以通过 EMR 集群进行查询分析,只是读取性能会有所降低。对于归档类查询场景,这种性能换成本的方式具有实际价值。
将 EMR 统一元数据库和冷热分层存储结合使用,可以构建一个弹性、低成本的大数据分析和存储架构。
通过统一 Hive 元数据库和统一对象存储的组合,可以实现跨集群的同数据集分析架构。多个 EMR 集群可以共享同一份元数据和同一份存储数据,每个集群可以专注于不同的计算任务(如离线计算、交互式查询、机器学习等),互不干扰但数据共享。
在这种架构下,集群可以根据业务特点灵活创建或销毁。当某个计算任务完成后,对应的集群可以释放,而元数据和存储数据不受影响。需要启动新任务时,创建新集群并关联已有元数据库即可,无需数据迁移。
EMR 支持根据业务运行时间特点和负载特点自动伸缩 Task 节点。结合存算分离架构,当计算需求增加时自动扩容,需求减少时自动缩容,减少资源闲置成本。
对于有明显业务高峰和低谷的场景,自动伸缩能力可以让集群规模与实际负载匹配,避免为了应对短时高峰而长期维持大规模集群。
在配置 EMR 统一元数据库时,需注意以下事项:
Hive 元数据压力是大数据平台规模化后的普遍问题,表现为元数据规模膨胀、查询延迟增大、并发阻塞等。腾讯云 EMR 通过统一元数据库方案,实现元数据独立持久化和多集群共享,解决集群销毁导致元数据丢失的问题。结合冷热分层存储和存算分离架构,在保障查询性能的同时降低存储和计算成本。
了解更多产品详情: https://cloud.tencent.com/product/emr
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。