在 AWS Outposts 上使用 A

使用 Amazon EMR 实现AWS Outposts上的混合大数据分析

关键要点

  • Amazon EMR 作为强大的云端大数据处理解决方案,能够满足数据隐私、延迟和混合架构需求。
  • Amazon EMR在AWS Outposts的扩展使得企业能在本地及云端无缝地访问与处理数据。
  • 案例展示了Oktank Finance如何利用该技术,构建数据湖并管理敏感数据。

企业需要强大且灵活的工具来管理和分析大量信息。长期以来一直是云端大数据处理的领先解决方案。该平台支持PB级数据处理、交互式分析和机器学习,使用超过20个开源框架,如、Hive 和 。然而,数据驻留要求、延迟问题和混合架构需求常常对纯云解决方案造成挑战。

引入,这是一项开创性扩展,将AmazonEMR的强大功能直接引入本地环境。这个创新服务将Amazon EMR的可扩展性和性能()与数据中心的控制和接近性结合在一起,使企业能够满足严格的法规和操作要求,同时解锁新的数据处理可能性。

在本篇文章中,我们将探讨EMR onOutposts的变革性特性,展示它作为本地混合数据分析服务的灵活性,允许无缝的数据访问和处理。同时,我们还将探讨它如何与现有IT基础设施平滑集成,为企业提供灵活性,能够在数据最适合的位置保存数据,并在本地执行计算。我们将考察一种混合设置,其中敏感数据保留在,而公共数据存储在AWS区域存储桶中。该配置允许您使用云数据增强敏感本地数据,同时确保所有数据处理和计算在本地进行。

解决方案概述

本文讨论了虚构公司OktankFinance的案例。Oktank希望建立一个集中式数据湖,以存储大量结构化和非结构化数据,从而实现统一访问,支持高级分析和大数据处理,推动数据驱动的洞察和创新。同时,Oktank必须遵守数据驻留要求,确保机密数据仅在本地存储和处理。此外,Oktank还需要利用云中存储的非机密和公共市场数据来丰富他们的数据集,这意味着需要能够跨本地和云数据存储连接数据集。

传统上,Oktank的大数据平台将计算和存储资源紧密耦合在一起,导致一个不灵活的系统,其中下线计算节点可能会导致数据丢失。为了避免这种情况,Oktank希望将计算与存储解耦,允许根据需要缩减计算节点,并将其重新用于其他工作负载,而不影响数据的完整性和可访问性。

为满足这些要求,Oktank决定采用Amazon EMR on Outposts作为其大数据分析平台,同时使用Amazon S3 onOutposts作为数据湖的本地数据存储。通过EMR onOutposts,Oktank可以确保所有计算都在其Outposts机架内的本地进行,同时能够使用统一的数据API查询和连接存储在OutpostsS3中的机密数据和存储在AmazonS3中的公共数据。对于数据处理,Oktank可以从中选择。在这篇文章中,我们使用Spark作为数据处理框架。

这种方法确保所有数据处理和分析都将在本地环境内执行,使Oktank能够保持遵守数据隐私和监管要求。同时,通过避免需要将公共数据复制到本地数据中心,Oktank降低了存储成本,并通过消除额外的数据移动作业来简化其端到端的数据管道。

以下图表展示了高层解决方案架构。

删除)

如前所述,架构中的S3 onOutposts存储桶包含Oktank的敏感数据,这些数据保留在Oktank的数据中心的Outpost中,而区域S3存储桶则包含非敏感数据。

为实现高网络性能,我们还使用了与。当需要增强查询吞吐量以连接区域S3存储桶时,这种设置非常有利,因为流量通过专用网络通道路由到AWS。

解决方案涉及在Outposts机架上部署EMR集群。一个将连接到区域。服务链接是您的Outposts与区域(或主区域)之间必要的连接,它允许管理Outposts并交换进出区域的流量。

此外,您还可以通过此服务链接访问区域S3存储桶。然而,在本文中,我们采用了另一种选择,使EMR集群能够通过本地网关私下访问区域S3存储桶。这有助于优化来自区域S3存储桶的数据访问,因为通过DirectConnect路由流量。

为了使EMR集群通过Direct Connect私下访问Amazon S3,需要在Outposts子网中配置一个路由(在架构图中标记为2),以将AmazonS3的流量引导到本地网关。到达本地网关后,流量通过DirectConnect(私有虚拟接口)路由至区域内的虚拟私有网关。第二个VPC(在图示中为5),它包含S3接口端点,将连接到此虚拟私有网关。然后添加一个路由,以确保流量可以返回给EMR集群。此设置提供了EMR集群与区域S3存储桶之间更高效、更高带宽的通信。

进行大数据处理时,我们使用Amazon EMR。Amazon EMR ,该功能自Amazon EMR版本7.0.0起与提供支持。EMR 文件系统(EMRFS)与S3 onOutposts不兼容。我们使用在数据上运行交互式查询。我们还通过在EMR集群上提交Spark作业。我们还使用作为外部Hive兼容元存储,这作为中央技术元数据目录。数据目录是所有数据资产的集中元数据存储库,跨多个数据源提供了统一的界面来存储和查询有关数据格式、架构和来源的信息。此外,我们使用对AWSGlue表进行访问控制。在该架构中,您仍需使用(IAM)权限控制对S3on Outposts存储桶内原始文件的访问。在撰写时,Lake Formation无法直接管理对S3 onOutposts存储桶中数据的访问。对存储在S3 on Outposts存储桶中的实际数据文件的访问由IAM权限管理。

在接下来的各节中,您将实施这一架构。我们集中讨论Oktank Finance的特定用例,他们在本地S3 onOutposts存储桶中维护敏感客户持股数据。此外,他们还拥有存储在区域S3存储桶中的公开可用股票详情。目标是通过在本地Outposts设置中探索这两个数据集来丰富客户的股票持有数据。

首先,我们探讨如何使用EMR集群访问这两个数据集。然后,我们将演示如何对本地数据和公共数据之间执行联接。我们还将展示如何使用LakeFormation有效地管理这些表的权限。在整个演示中,我们探讨了两种主要场景。在交互案例中,我们展示了用户如何连接到EMR集群并使用EMRStudio笔记本交互式运行查询。这种方式允许实时数据探索和分析。此外,我们还展示了如何使用EMR步提交批处理作业,以进行自动化、计划的数据处理。这种方法适合循环任务或大规模数据转换。

前提条件

完成以下前提步骤:

  1. 拥有一个AWS账户和管理员访问权限的角色。如果您没有账户,可以。
  2. 安装并运行Outposts机架。
  3. 。这使您即使在丢失区域连接的情况下也能连接到EMR集群节点。
  4. 设置Direct Connect。只有在您希望部署下一节中解释的第二个模板时才需要此项。

部署CloudFormation堆栈

在本篇文章中,我们将设置分为四个CloudFormation模板,每个模板负责提供架构的特定组件。这些模板都带有默认参数,您可能需要根据具体的配置要求进行调整。

提供Outposts的网络基础设施。这还创建S3 onOutposts存储桶和区域S3存储桶。它将示例数据复制到桶中,以模拟Oktank的数据设置。针对的机密数据被复制到S3 on Outposts存储桶,而针对的非机密数据被复制到区域S3存储桶。

提供使用Direct Connect私下连接区域S3存储桶的基础设施。它建立一个VPC,具备与区域S3存储桶及Outposts子网的私有连接。它还创建了一个Amazon S3VPC接口端点,以允许对AmazonS3的私有访问。它建立了一个虚拟私有网关,以便于VPC与Outposts子网间的连通性。最后,它配置了一个私有的托管区,允许对VPC内的S3端点进行私有DNS解析。如果您不需要使用DirectConnect来路由流量,则可以跳过此堆栈的部署。

提供EMR集群基础设施、AWS Glue数据库和AWS Glue表。这一堆栈创建一个名为 oktank_outpostblog_temp的AWSGlue数据库,并在其中创建三个表:stock_detailsstockholdings_infostockholdings_info_detailed。表stock_details包含股票的公共信息,而该表的数据位置指向区域S3存储桶。表stockholdings_infostockholdings_info_detailed包含机密信息,其数据位置则在S3onOutposts存储桶中。它还创建了一个,命名为outpostblog- runtimeRole1。此运行时角色是IAM角色,您将其与EMR步关联,作业使用该角色访问AWS资源。通过EMR步骤的运行时角色,您可以为Spark和Hive作业指定不同的IAM角色,从而在作业级别限制访问。这样可以简化共享多个租户之间的单个EMR集群上的访问控制,其中每个租户都可以通过IAM角色隔离。该堆栈还授予运行时角色所需的权限,以便访问区域S3存储桶和S3onOutposts存储桶。EMR集群使用一个来运行一个脚本,将示例数据复制到S3 on Outposts存储桶和区域S3存储桶,以适应两个表的需求。

提供EMRStudio。我们将连接到EMR Studio笔记本,并与存储在S3 on Outposts和区域S3存储桶中的数据进行交互。该堆栈输出EMR StudioURL,您可以使用它连接到EMR Studio。

运行上述CloudFormation堆栈时,请使用管理员角色按顺序创建解决方案资源。

访问数据并联接表

验证解决方案,请完成以下步骤:

  1. 在AWS CloudFormation控制台中,导航至堆栈4的输出 选项卡,该堆栈部署了EMR Studio,选择EMR Studio URL。

这将在新窗口中打开EMR Studio。
EMRStudio

  1. ,使用默认选项。

该工作区将在新标签页中启动。

  1. 使用运行时角色(outpostblog-runtimeRole1)连接到EMR集群。

目前您已成功连接到EMR集群。

  1. 选择文件浏览器选项卡,打开笔记本并选择内核为PySpark。

删除)

  1. 在笔记本中运行以下查询以从股票详情表中读取数据。该表指向存储在区域S3存储桶中的公共数据:

python spark.sql("select * fromoktank_outpostblog_temp.stock_details").show(5)

删除)

  1. 运行以下查询以从存储在本地S3 on Outposts存储桶中的机密数据读取:

python spark.sql("select * fromoktank_outpostblog_temp.stockholdings_info").show(5)

删除)

如前所述,Oktank的一个要求是将前面的数据与区域S3存储桶中的数据进行结合,以增强数据价值。

  1. 执行以下查询以联接先前的两个表:

python spark.sql("select customerid,sharesheld,purchasedate, a.stockid, b.stockname,b.category,b.currentprice fromoktank_outpostblog_temp.stockholdings_info a inner joinoktank_outpostblog_temp.stock_details b on a.stockid=b.stockid order bycustomerid").show(10)

![S3 on删除)

使用Lake Formation控制表的访问权限

在本篇文章中,我们还展示了如何使用Lake Formation控制表的访问权限。为了演示

Leave a Reply

Required fields are marked *