案例中心
首页 > 案例中心 > 设计基于 Amazon EMR 的数据湖数据网格模式,使用 AWS Lake Formation 和

设计基于 Amazon EMR 的数据湖数据网格模式,使用 AWS Lake Formation 和

2026 .01 .27

为基于 Amazon EMR 的数据湖设计数据网格模式

撰写:Sudipta Mitra、Nanda Chinnappa 和 Deepak Sharma日期:2024年6月10日类别: 高级 (300) Amazon EMR AWS Glue AWS Lake Formation 最佳实践 技术操作指南永久链接 评论

关键要点

在这篇文章中,我们讨论了使用 Amazon EMR 进行现代数据管理的关键方面,涵盖数据治理、数据网格部署和简化数据发现等主题。通过 AWS Lake Formation 和 Hive 元数据仓库联合,组织可以实现高效的数据共享和访问控制。

文章重点

在现代大数据管理中,一个主要挑战是如何在多个 EMR 集群之间高效地实现数据共享和访问控制。许多组织在不同的 EMR 集群中维护多个 Hive 数据仓库,并生成相应的元数据。为了解决这一挑战,组织可以利用 AWS Lake Formation 部署数据网格,连接多个 EMR 集群。借助于 AWS Glue 数据目录对外部 Hive 元数据仓库的联合特性,组织现在可以对这些 EMR 集群中的元数据应用数据治理,并使用 AWS 提供的分析服务进行分析,包括 Amazon Athena、Amazon Redshift Spectrum、AWS Glue ETL 作业、EMR 笔记本和 Amazon SageMaker Studio。

本文将介绍如何在多个 Hive 数据仓库之间部署数据网格,并通过现代化的平台实现可伸缩性与灵活性,同时保持对数据资产的控制和完整性。

Amazon EMR 的 Hive 元数据仓库联合使用案例

Hive 元数据仓库联合适用于以下使用案例:

设计基于 Amazon EMR 的数据湖数据网格模式,使用 AWS Lake Formation 和使用案例描述说明Amazon EMR 数据湖治理制作方在其 AWS 账户中使用 Amazon EMR 支持的 EMRFS 和 Amazon S3 生成数据。集中管理的已发布数据目录多个制作方发布的数据需要集中管理。消费者角色包括运行查询的数据分析师、为机器学习准备数据的数据科学家等。跨制作方数据访问消费者可能需要访问多个制作方在同一目录环境中的数据。数据访问授权实施数据库、表及列级别的访问限制,以提供恰当的数据访问控制。

解决方案概述

以下图表展示了如何通过在中央治理账户中实施 Lake Formation 权限,使得持有自己 Hive 元数据仓库的制作方左侧向消费者右侧共享数据。

制作方与消费者概念

“制作方”和“消费者”是逻辑概念,用以表示通过目录进行数据的生产和消费。一个实体既可以作为数据资产的制作方,也可以作为数据资产的消费者。制作方通过共享元数据来完成接入,而消费者则基于授予的访问权限来接入这些元数据。

解决方案总共包括多个步骤,涉及制作方账户、目录账户和消费者账户:

加速器官方网下载部署 AWS CloudFormation 模板,并设置制作方、中央治理与目录和消费者账户。测试在消费者账户中通过 EMR Serverless 访问制作方目录化的 Amazon S3 数据。测试在消费者账户中通过 Athena 查询访问。测试在消费者账户中通过 SageMaker Studio 访问。

制作方

制作方在其 AWS 账户中创建数据,存放在 Amazon EMR 数据湖和 Amazon S3 中。多个制作方随后将这些数据发布到一个中央目录数据湖技术账户。每个制作方账户与中央目录账户之间建立 VPC 连接。

对每个制作方来说,都会在目录账户中部署一个 AWS Glue Hive 元数据仓库连接器 的 AWS Lambda 函数,用于实时访问制作方的 Hive 元数据仓库信息。数据湖的位置信息制作方的 S3 存储桶位置也在目录账户中注册。

中央目录

该目录为消费者提供管控与安全的数据访问。在目录账户的 Data Catalog 内部建立了使用 Hive 连接的联合数据库,这些数据库将由目录的 Lake Formation 管理员 (LFAdmin) 管理。目录账户中的联合数据库随后由数据湖 LFAdmin 共享给外部消费者账户的 LFAdmin。

数据访问权利会根据不同级别的需求进行管理,如在数据库或表的层面施加访问控制。

消费者

消费者 LFAdmin 将必要的权限或限制权限授予诸如数据分析师、数据科学家和下游批处理引擎的 AWS IAM 角色。

数据访问的权利通过根据需求在各个层次如数据库和表之间施加访问控制进行管理。

前提条件

要实现此解决方案,您需要三套具有管理员访问权限的 AWS 账户,建议使用测试账户。制作方账户将托管 EMR 集群和 S3 存储桶。目录账户将托管 Lake Formation 和 AWS Glue。消费者账户将托管 EMR Serverless、Athena 和 SageMaker 笔记本。

设置制作方账户

在启动 CloudFormation 堆栈之前,请从目录账户收集以下信息:

目录 AWS 账户 ID12 位账户 ID目录 VPC ID例如,vpcxxxxxxxxVPC CIDR目录账户 VPC 的 CIDR,不能与 10000/16 重叠

由于 VPC 对等连接和 Transit Gateway 的要求,制作方与目录账户的 VPC CIDR 不能重叠。CloudFormation 堆栈为制作方创建以下资源:

用于 EMR 集群 Hive 元数据仓库的数据 S3 存储桶。VPC,CIDR 为 10000/16。确保没有正在使用此 CIDR 的现有 VPC。制作方与目录账户之间的 VPC 对等连接。用于 EMR 集群的 Amazon EC2 安全组。解决方案所需的 IAM 角色。启动一个包含 Hive 的 EMR 610 集群。下载的示例数据到 S3 存储桶。在 Hive 元数据仓库中指向下载示例数据的数据库和外部表。

完成以下步骤:

启动模板 PRODUCERyml。建议使用具有管理员权限的 IAM 角色。在 CloudFormation 堆栈的 输出 选项卡中收集以下值:VpcPeeringConnectionId例如,pcxxxxxxxxxxDestinationCidrBlock10000/16S3ProducerDataLakeBucketName

设置目录账户

目录账户的 CloudFormation 堆栈将创建用于联合的 Lambda 函数。在启动模板之前,在 Lake Formation 控制台中,将部署堆栈的 IAM 角色和用户添加为数据湖管理员。

然后完成以下步骤:

启动模板 CATALOGyml。对于 RouteTableId 参数,使用目录账户 VPC 的 RouteTableId,即 AWS Glue Hive 元数据仓库连接器 Lambda 函数将要部署的 VPC。在堆栈的 输出 选项卡中,复制 LFRegisterLocationServiceRole 的值arnawsiamaccountidrole/rolename。确认数据目录设置中的 IAM 访问控制选项未勾选,并确保当前的跨账户版本设置为 4。

登录制作方账户,并将以下策略添加至制作方 S3 存储桶的策略中。将 LFRegisterLocationServiceRole 的 ARN 添加到主体部分,并在资源部分提供 S3 存储桶名称。

json{ Version 20121017 Statement [ { Effect Allow Principal { AWS arnawsiamaccountidrole/rolename } Action [ s3GetObject s3ListBucket ] Resource [ arnawss3s3bucketname/ arnawss3s3bucketname ] } ]}

在制作方账户中,通过 Amazon EMR 控制台,导航到主节点 EC2 实例以获取 私有 IP DNS 名称仅 IPv4 的值例如,ipxxxxxxuswest1computeinternal。

切换到目录账户,并部署 AWS Glue 数据目录联合 Lambda 函数GlueDataCatalogFederationHiveMetastore。

默认区域设置为 useast1,将其更改为您希望的区域,然后再部署该函数。

使用之前用作 VPC CIDR 的 VPC,您可以使用 VPC 的默认安全组 ID。如果使用另一个安全组,请确保出站流量允许访问 0000/0。

接着,您创建一个 Lake Formation 中的联合数据库。

在 Lake Formation 控制台,选择导航窗格中的 数据共享。选择 创建数据库。

提供以下信息:对于 连接名称 ,选择您的连接。对于 数据库名称 ,输入您的数据库名称。对于 数据库标识符 ,输入 emrhmssalesdb这是在 EMR Hive 元数据仓库中创建的数据库。选择 创建数据库。

在 数据库 页面,选择数据库,在 操作 菜单中选择 授予,以授予消费者账户描述权限。

在 主体 下,选择 外部账户,并选择您的账户 ARN。在 LF 标签或目录资源 下,选择 命名的数据目录资源 并选择您的数据库和表。在 表权限 下,提供以下信息:对于 表权限 ,选择 选择 和 描述。对于 可授予权限 ,选择 选择 和 描述。在 数据权限 下,选择 所有数据访问。选择 授予。

在 表 页面,选择您的表,在 操作 菜单中选择 授予,以授予选择和描述权限。

在 主体 下选择 外部账户,并选择您的账户 ARN。在 LF 标签或目录资源 下,选择 命名的数据目录资源 并选择您的数据库。在 数据库权限 下,提供以下信息:对于 数据库权限 ,选择 创建表 和 描述。对于 可授予权限 ,选择 创建表 和 描述。选择 授予。

设置消费者账户

消费者包括运行查询的数据分析师、为机器学习模型准备数据的数据科学家以及在数据湖中运行批处理作业的下游系统。

本节的消费者账户设置展示了如何通过 Athena 查询共享的 Hive 元数据,适用于数据分析师角色,使用 EMR Serverless 运行批处理脚本,以及通过 SageMaker Studio 进行进一步的数据使用。

如使用默认的 IAM 服务角色,需为该角色添加所需的数据目录和 Lake Formation IAM 权限,然后使用 Lake Formation 授予角色 ARN 的表权限访问。

数据分析师使用案例

在本节中,我们演示数据分析师如何使用 Athena 查询 Hive 元数据。在开始之前,在 Lake Formation 控制台中,将部署 CloudFormation 堆栈的 IAM 角色或用户添加为数据湖管理员。

然后完成以下步骤:

运行 CloudFormation 模板 CONSUMERyml。如果目录和消费者账户不是 AWS 组织的一部分,转到 AWS 资源访问管理器 控制台手动接受来自目录账户共享的资源。在 Lake Formation 控制台的 数据库 页面,选择您的数据库,在 操作 菜单中选择 创建资源链接。

![图示](https//d2908q01vomqb2cloudfrontnet/b6692ea5df920cad691c20319a6fffd7a4a766

按计划停止和启动 Amazon RDS Multi

联系我们
留言

Copyright © 欢迎来到风驰加速器官網|风驰加速器 版权所有 网站地图

WeChat
WeChat

留言框-

欢迎来到风驰加速器官網|风驰加速器

13594780068