跳至主要内容

Amazon EMR

Amazon EMR 常见问题

一般性问题

全部打开

Amazon EMR 是行业领先的云大数据平台,适用于使用多种开源框架进行数据处理、交互分析和机器学习,例如 Apache Spark、Apache Hive、Presto。借助 EMR,您可以用不到传统本地解决方案一半的成本运行 PB 级分析,并且其速度比标准 Apache Spark 快 1.7 倍以上

通过 Amazon EMR,您可以专注于数据转换和分析,而不必操心管理计算能力或开源应用程序,并且还能节省资金。使用 EMR,您可以立即在 Amazon EC2 上预置任意大小的容量,并设置扩展规则来管理不断变化的计算需求。您可以设置 CloudWatch 警报,以便在基础设施发生变化时可以立即收到通知并采取行动。如果您使用 Kubernetes,还可以使用 EMR 将您的工作负载提交到 Amazon EKS 集群。无论您使用 EC2 还是 EKS,都可以从 EMR 优化的运行时中获益,以便加快您的分析速度,并节省时间和资金。

您可以使用 Amazon EC2、Amazon Elastic Kubernetes Service(EKS)或本地 AWS Outposts 将工作负载部署到 EMR。您可以使用 EMR 控制台、API、开发工具包或 CLI 运行和管理工作负载,并使用 Amazon Managed Workflow for Apache Airflow (MWAA) 或 AWS Step Functions 进行编排。对于交互式体验,您可以使用 EMR Studio 或 SageMaker Studio。

要注册 Amazon EMR,请单击 Amazon EMR 详细信息页面(http://aws.amazon.com/emr)中的“立即注册”按钮。您必须注册 Amazon EC2 和 Amazon S3 才能访问 Amazon EMR;如果您尚未注册这些服务,在 Amazon EMR 注册过程中,系统将会提示您进行注册。注册后,请参阅 Amazon EMR 文档,其中包括我们的“入门指南”,能够很好地协助您开始使用此服务。

请参阅我们的服务水平协议

开发与调试

全部打开

有关示例代码,请参阅这些文章和教程。如果您使用 EMR Studio,则可以使用一组笔记本示例探索这些功能。

您可以在 Amazon EMR Studio 中开发、可视化和调试在 R、Python、Scala 和 PySpark 中编写的数据科学和数据工程应用程序。您还可以在桌面上开发数据处理作业,例如,使用 Eclipse、Spyder、PyCharm 或 RStudio,并在 Amazon EMR 上运行。此外,您可以在启动新集群时在软件配置中选择 JupyterHubZeppelin,并使用一个或多个实例在 Amazon EMR 上开发您的应用程序。

命令行工具或 API 能够以编程方式启动和监控集群的运行进度、围绕集群创建更多自定义的功能(例如,对多个处理步骤排序、计划、工作流或监控)或为其他 Amazon EMR 客户构建增值工具或应用程序。相比而言,AWS 管理控制台提供易用的图形界面,可以直接从 Web 浏览器启动和监控集群。

是的。任务运行后,您可以通过 AddJobFlowSteps API 选择性地添加更多步骤。AddJobFlowSteps API 将向当前的步骤序列结尾添加新的步骤。您可以使用此 API 在集群中执行条件逻辑或进行调试。

您可以注册 Amazon SNS,让集群在完成后向您发布 SNS 主题。您还可以在 AWS 管理控制台上查看集群进度,或者使用命令行、软件开发工具包或者 API 获取集群的状态。

可以。可以通过启动自动终止标志,在完成所有步骤后自动终止集群。

Amazon EMR 5.30.0 及更高版本,以及 Amazon EMR 6.x 系列基于 Amazon Linux 2。您也可以指定一个基于 Amazon Linux 2 创建的自定义 AMI。这让您可以为几乎任何应用程序执行复杂的预配置。有关更多信息,请参阅使用自定义 AMI

可以。 您可以使用引导操作在集群中安装第三方软件包。此外,也可以使用 Hadoop 分布式缓存机制上传静态编译的可执行文件。EMR 6.x 支持 Hadoop 3,它允许 YARN NodeManager 直接在 EMR 集群主机上或 Docker 容器内启动容器。要了解更多信息,请参阅我们的文档

您可以使用多种工具来收集有关集群的信息,以帮助确定问题所在。如果您使用 Amazon EMR studio,则可以启动 Spark UI 和 YARN Timeline Service 等工具来简化调试。从 Amazon EMR 控制台,您可脱离集群访问 Apache Spark、Tez UI 和 YARN 时间线服务器的持久性应用程序用户界面、多个集群内应用程序用户界面,以及所有 YARN 应用程序的 Amazon EMR 控制台中应用程序历史记录的摘要视图。您还可以使用 SSH 连接主节点,并通过这些 Web 界面查看集群实例。有关更多信息,请参阅我们的文档

EMR Studio

全部打开

EMR Studio 是一个集成式开发环境(IDE),使数据科学家和数据工程师能够轻松地开发、可视化和调试用 R、Python、Scala 和 PySpark 编写的数据工程和数据科学应用程序。

它是一个完全托管的应用程序,具有单点登录、完全托管的 Jupyter Notebooks、自动基础设施预置,并且能够在不登录 AWS 控制台或集群的情况下调试作业。数据科学家和分析人员可以安装自定义内核和库,使用代码库(如 GitHub 和 BitBucket)与同事协作,或者使用 Apache Airflow、AWS Step Functions 和 Amazon Managed Workflows for Apache Airflow 等编排服务,将参数化笔记本作为计划工作流的一部分运行。 您可以使用 Amazon MWAA 读取 Amazon EMR 笔记本上的编排分析作业,以了解更多信息。EMR Studio 内核和应用程序在 EMR 集群上运行,因此您可以利用经过性能优化的适用于 Apache Spark 的 Amazon EMR 运行时,获得分布式数据处理带来的优势。管理员可以设置 EMR Studio,以便分析师可以在现有 EMR 集群上运行其应用程序,或使用 EMR 的预定义 AWS CloudFormation 模板创建新集群。

借助 EMR Studio,您可以使用企业凭证直接登录到完全托管的 Jupyter Notebook,而无需登录到 AWS 管理控制台,在几秒钟内启动笔记本,开始使用示例笔记本,并执行数据探索。您还可以通过从笔记本加载自定义内核和 Python 库来自定义环境。EMR Studio 内核和应用程序在 EMR 集群上运行,因此您可以利用经过性能优化的适用于 Apache Spark 的 Amazon EMR 运行时,获得分布式数据处理带来的优势。您可以通过 GitHub 和其他存储库共享笔记本来与同事协作。您还可以将笔记本直接作为连续集成和部署管道运行。您可以将不同的参数值传递给笔记本。您还可以将笔记本连接起来,并使用诸如 Apache Airflow 之类的工作流编排服务将笔记本集成到计划工作流中。此外,您可以通过本机应用程序界面(例如 Spark UI 和 YARN 时间线服务)使用尽可能少的单击来调试集群和作业。

有五个主要区别。

  1. 使用 EMR Studio 时,无需访问 AWS 管理控制台。EMR Studio 托管在 AWS 管理控制台之外。如果您不向数据科学家或数据工程师提供对 AWS 管理控制台的访问权限,这一点将非常有用。

  2. 您可以使用 AWS IAM Identity Center(AWS SSO 的后继者),利用由身份提供商提供的企业凭证登录到 EMR Studio。 

  3. EMR Studio 为您带来笔记本的初体验。EMR Studio 内核和应用程序在 EMR 集群上运行,因此您可以利用经过性能优化的适用于 Apache Spark 的 Amazon EMR 运行时,获得分布式数据处理带来的优势。在集群上运行代码就像将笔记本附加到现有集群或预置新集群一样简单。

  4. EMR Studio 具有简化的用户界面并抽象了硬件配置。例如,您可以设置一次集群模板,然后使用模板启动新的集群。 

  5. EMR Studio 提供了简化的调试体验,因此您只需单击几次就可以在一个位置访问本机应用程序用户界面。

您可以将 EMR Studio 和 SageMaker Studio 与 Amazon EMR 一起使用。EMR Studio 提供集成开发环境 (IDE),使您能够轻松地开发、可视化和调试用 R、Python、Scala 和 PySpark 编写的数据工程和数据科学应用程序。Amazon SageMaker Studio 提供了一个基于 Web 的可视化界面,您可以通过该界面执行所有机器学习开发步骤。借助 SageMaker Studio,您可以全面掌控和了解构建、训练和部署模型的每个步骤。您可以快速上传数据、创建新笔记本、训练和调优模型,在步骤之间来回移动以调整实验、对比结果以及将模型部署到生产环境中,而且上述所有工作都在一个地方完成,大大提升了工作效率。 

您的管理员必须首先设置 EMR Studio。从管理员那里收到 Amazon EMR Studio 的唯一登录 URL 后,您可以使用企业凭证直接登录到 Studio。

不需要。管理员设置 EMR Studio 并提供 Studio 访问 URL 后,您的团队可以使用企业凭证登录。无需登录到 AWS 管理控制台。在 EMR Studio 中,您的团队可以执行任务并访问由管理员配置的资源。

AWS IAM Identity Center(AWS SSO 的后继产品)是 EMR Studio 的单点登录服务提供程序。AWS IAM 支持的身份提供商列表可在我们的文档中找到。

Workspace 可帮助您整理 Jupyter Notebooks。工作区中的所有笔记本都保存到同一个 Amazon S3 位置,并在同一集群上运行。您还可以将代码存储库(如 GitHub 存储库)链接到工作区中的所有笔记本。您可以在将工作区附加到集群之前创建和配置工作区,但您应该在运行笔记本之前先连接到集群。

是的,您可以创建或打开工作区而无需将其附加到集群。仅在需要执行时,才应该将它们连接到集群。EMR Studio 内核和应用程序在 EMR 集群上运行,因此您可以利用经过性能优化的适用于 Apache Spark 的 Amazon EMR 运行时,获得分布式数据处理带来的优势。

所有 Spark 查询都在您的 EMR 集群上运行,因此您需要安装 Spark 应用程序在该集群上使用的所有运行时库。您可以轻松地在笔记本单元中安装笔记本范围的库。您还可以在笔记本单元内,或在使用 SSH 连接集群的主节点时,在集群主节点上安装 Jupyter Notebook 内核和 Python 库。有关更多信息,请参阅文档。此外,创建集群时,您可以使用引导操作或自定义 AMI 安装查询的库。如需了解更多信息,请参阅 Amazon EMR 管理指南中的创建引导操作以安装其他软件使用自定义 AMI

工作区和工作区中的笔记本文件自动定期保存到您在创建该工作区时指定的 Amazon S3 位置中的 ipynb 文件。该笔记本文件的名称与您在 Amzon EMR Studio 中的笔记本相同。

您可以在版本受控的环境中将基于 Git 的存储库与 Amazon EMR Studio Notebooks 相关联,以保存您的笔记本。

使用 EMR Studio,您可以在运行于 Amazon Elastic Compute Cloud(Amazon EC2)上的 Amazon EMR 上或者运行于 Amazon Elastic Kubernetes Service(Amazon EKS)上的 Amazon EMR 上运行笔记本代码。可以将笔记本附加到现有或新的集群上。您可以在 EMR Studio 中以两种方式创建 EMR 集群:使用预配置的集群模板通过 AWS Service Catalog 创建集群;通过指定集群名称、实例数和实例类型创建集群。

是的,您可以打开您的工作区,选择左侧的 EMR 集群图标,按下分离按钮,然后从选择集群下拉列表中选择集群,并按下附加按钮。

在 EMR Studio 中,您可以选择左侧的工作区选项卡,查看您和其他用户在同一个 AWS 账户中创建的所有工作区。

每个 EMR Studio 都需要权限才能与其他 AWS 服务进行互操作。为了给您的 EMR Studio 必要的权限,您的管理员需要使用所提供的策略来创建 EMR Studio 服务角色。他们还需要为 EMR Studio 指定一个定义 Studio 级别权限的用户角色。当他们将用户和组从 AWS IAM Identity Center(AWS SSO 的后继者)添加到 EMR Studio 时,他们可以将会话策略分配给用户或组以应用细粒度权限控制。会话策略可帮助管理员优化用户权限,而无需创建多个 IAM 角色。有关会话策略的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的策略和权限

是的。目前不支持高可用性(多主控)集群、Kerberos 化集群和 AWS Lake Formation 集群。

向您提供的 Amazon EMR Studio 不再额外收费。在您使用 EMR Studio 时,将收取适用于 Amazon Simple Storage Service 存储和 Amazon EMR 集群的费用。要更多了解定价选项和详细信息,请参阅 Amazon EMR 定价

EMR Notebooks

全部打开

我们建议新客户使用 Amazon EMR Studio,而不是 EMR Notebooks。EMR Notebooks 提供基于 Jupyter Notebook 的托管环境,可供数据科学家、分析员和开发人员准备数据并使其可视化、与同伴协作、构建应用程序,并使用 EMR 集群执行交互分析。尽管我们建议新客户使用 EMR Studio,但出于兼容性考虑,我们也支持 EMR Notebooks。

您可以使用 EMR Notebooks 构建 Apache Spark 应用程序,并且轻而易举地在 EMR 集群上运行交互式查询。多个用户可以直接从控制台创建无服务器笔记本、将其挂载到现有的共享 EMR 集群,或直接从控制台预置一个集群并立即开始使用 Spark 进行实验。您可以卸载笔记本并将其重新挂载到新集群。笔记本自动保存到 S3 存储桶,您可以从控制台检索已保存的笔记本以恢复工作。EMR Notebooks 预打包了在 Anaconda 存储库中创建的库,供您在自己的笔记本代码中导入和使用这些库,并利用它们操作数据以及将结果可视化。另外,EMR Notebooks 集成有 Spark 监控功能,您可以用来监测 Spark 作业的进度并在自己的笔记本中调试代码。

要开始使用 EMR Notebooks,打开 EMR 控制台,在导航窗格中选择笔记本。在这里,只需选择创建笔记本,输入笔记本的名称,选择一个 EMR 集群或即时创建一个新集群,为要使用的笔记本提供服务角色,并选择您要将笔记本文件保存到的 S3 存储桶,然后单击创建笔记本。当笔记本显示就绪状态后,选择打开 以启动笔记本编辑器。

EMR Notebooks 可挂载到运行 EMR 5.18.0 版或更高版本的 EMR 集群。

向您提供的 EMR Notebooks 不再额外收费。您的帐户将根据挂载的 EMR 集群照常收费。您可以访问 https://aws.amazon.com/emr/pricing/ 以了解关于集群定价的更多信息 

管理数据

全部打开

Amazon EMR 提供了几种将数据导入集群的方法。最常用的方法是将数据上传到 Amazon S3,并使用 Amazon EMR 的内置功能将数据加载到您的集群中。您可以使用 Hadoop 的分布式缓存功能将文件从分布式文件系统传输到本地文件系统。有关更多详细信息,请参阅文档。或者,如果您要将数据从本地迁移到云,可以使用 AWS 提供的任何一种云数据迁移服务。

Hadoop 系统日志及用户日志存放在您在创建集群时指定的 Amazon S3 存储桶中。持久性应用程序 UI 在集群外运行,Spark 历史记录服务器、Tez UI 和 YARN 时间线服务器日志在应用程序终止后 30 天内可用。

不会,目前,Amazon EMR 在将日志迁移到 Amazon S3 时,不会压缩日志。

问:您是否会压缩日志?

可以。您可以使用 AWS Direct Connect 建立到 AWS 的私有专用网络连接。如果您有大量数据,可以使用 AWS Import/Export。有关更多详细信息,请参阅我们的文档

计费

全部打开

由于每个群集和输入数据不同,我们无法估算您的任务持续时间。

Amazon EMR 定价简单且可预测:您按每秒费率根据使用时间付费,同时设有一分钟最低费用。您可以使用 AWS 定价计算器估算您的费用。其他 Amazon Web Services(包括 Amazon EC2)的使用与 Amazon EMR 分开计费。

当该集群准备好执行步骤时,Amazon EMR 计费开始。当您请求关闭该集群时,Amazon EMR 计费结束。有关 Amazon EC2 开始和结束计费的详细信息,请参阅 Amazon EC2 计费常见问题

您可以在账单与成本管理控制台跟踪您的使用情况。

在 AWS 管理控制台中,每个集群都有一个“标准实例小时数”列,显示该集群大约使用的计算小时数(舍入至最接近的值)。

“标准实例小时数”是基于“1 小时 m1.small 用量 = 1 小时标准计算时间”得出的计算时间小时数。您可以查看我们的文档,以了解实例系列中不同规格的列表以及每小时对应的标准化因数。

例如,如果您运行一个 10 节点 r3.8xlarge 集群一小时,则控制台中所显示的标准实例总小时数为 640 [10(节点数)x 64(标准化因子)x 1(集群运行的小时数)= 640]。

这只是大致时间,不应用作账单。请参阅账单与收费管理控制台,了解可计费的 Amazon EMR 使用量。

可以。Amazon EMR 可无缝支持按需型实例、竞价型实例和预留实例。单击此处详细了解 Amazon EC2 预留实例。单击此处详细了解 Amazon EC2 竞价型实例。单击此处详细了解 Amazon EC2 容量预留。

除非另行说明,否则我们的价格不包含适用的税费和关税(包括增值税和适用的销售税)。使用日本账单地址的客户若要使用 AWS 服务,则需缴纳日本消费税。了解详情。 

安全性与数据访问控制

全部打开

Amazon EMR 在两个 Amazon EC2 安全组中启动您的实例,一组用于主实例,另一组用于其他集群节点。主安全组的端口是开放的,以便与服务进行通信。它的 SSH 端口也呈开放状态,以允许您使用启动时指定的密钥 SSH 到实例。其他节点在单独的安全组中启动,仅允许与主实例进行交互。默认情况下,两个安全组都设置为不允许从属于其他客户的 Amazon EC2 实例等外部源进行访问。由于这些是您账户内的安全组,所以您可以使用标准 EC2 工具或控制面板重新配置它们。单击此处详细了解 EC2 安全组。此外,如果规则允许在您未添加到例外情况列表的任何端口进行公有访问,您可以在用于阻止集群创建的每个区域中配置 Amazon EMR 阻止公有访问

Amazon S3 提供身份验证机制,确保存储的数据安全以防被未授权访问。除非上传数据的客户另行指定,否则仅该用户才能访问数据。Amazon EMR 客户还可以选择使用确保安全传送的 HTTPS 协议将数据发送到 Amazon S3。此外,Amazon EMR 始终使用 HTTPS 在 Amazon S3 与 Amazon EC2 之间发送数据。为了提高安全性,客户可以在将输入数据上传到 Amazon S3 之前对其进行加密(使用任何常见的数据加密工具);然后,当 Amazon EMR 从 Amazon S3 提取数据时,客户需要在其集群的开头添加一个解密步骤。

可以。AWS CloudTrail 是一项 web 服务,为您的帐户记录 AWS API 调用并向您交付日志文件。由 CloudTrail 生成的 AWS API 调用历史记录可用于安全分析、资源变更追踪以及合规性审计。在 AWS CloudTrail 详细信息页面了解更多有关 CloudTrail 的信息,或者通过 CloudTrail 的 AWS 管理控制台将其打开。

默认情况下,Amazon EMR 应用程序流程在调用其他 AWS 服务时使用 EC2 实例配置文件。对于多租户集群,Amazon EMR 提供了三个选项来管理用户对 Amazon S3 数据的访问。

  1. 与 AWS Lake Formation 的集成让您可以定义和管理 AWS Lake Formation 中的精细授权策略,以访问 AWS Glue Data Catalog 中的数据库、表和列。您可以对通过 Amazon EMR NotebooksApache Zeppelin 提交的用于交互式 EMR Spark 工作负载的作业实施授权策略,并将审核事件发送到 AWS CloudTrail。通过启用此集成,您还可以从与安全断言标记语言(SAML)2.0 兼容的企业身份验证系统中启用到 EMR Notebooks 或 Apache Zeppelin 的联合单点登录。

  2. 与 Apache Ranger 的本机集成允许您设置新的或现有的 Apache Ranger 服务器,以定义和管理精细授权策略,从而使用户可以通过 Hive Metastore 访问 Amazon S3 数据的数据库、表和列。Apache Ranger 是一个开源工具,用于在 Hadoop 平台上启用、监视和管理全面的数据安全。

    通过本机集成,您可以在 Apache Ranger Policy Admin 服务器上定义三种授权策略。您可以为 Hive 设置数据表、数据列和数据行级别的授权,为 Spark 设置数据表和数据列级别的授权,以及为 Amazon S3 设置前缀和对象级别的授权。Amazon EMR 会在集群上自动安装和配置相应的 Apache Ranger 插件。这些 Ranger 插件与 Policy Admin 服务器同步,以定义授权策略,实施数据访问控制,并将审核事件发送到 Amazon CloudWatch Logs

  3. Amazon EMR User Role Mapper 允许您利用 AWS IAM 权限来管理对 AWS 资源的访问。您可以在用户(或组)和自定义 IAM 角色之间创建映射。用户或组只能访问自定义 IAM 角色允许的数据。目前可通过 AWS Labs 使用该功能。

区域和可用区

全部打开

Amazon EMR 可启动同一 Amazon EC2 可用区中给定集群的所有节点。在同一可用区内运行集群可提高任务流的性能。默认情况下,Amazon EMR 选择运行集群的可用资源最多的可用区域。不过,如果需要,您可以指定其他可用区。您还可以选择为价格最低的按需型实例优化分配、优化竞价型实例容量或使用按需型实例容量预留。

要了解支持 Amazon EMR 的 AWS 区域列表,请访问所有 AWS 全球基础设施的 AWS 区域表

EMR 支持在洛杉矶 AWS 本地扩展区启动集群。您可以在美国西部(俄勒冈州)区域使用 EMR,以在与洛杉矶 AWS 本地扩展区相关的子网中启动集群。

创建集群时,通常应选择您的数据所在的区域。

是的,您可以。如果您在不同的地区之间传输数据,将对您收取带宽费用。有关带宽定价信息,请访问 EC2 详细信息页面上的定价部分。

AWS GovCloud(美国)区域专为美国政府机构和客户而设计。它遵循 US ITAR 要求。在 GovCloud,EMR 不支持 Spot 实例或启用调试功能。EMR 管理控制台在 GovCloud 中尚不可用。

部署选项

全部打开

Amazon EC2 上的 Amazon EMR

全部打开

集群是 Amazon Elastic Compute Cloud (Amazon EC2) 实例的集合。集群中的每个实例都称为节点,并在集群内具有一个角色,称为节点类型。Amazon EMR 还在每个节点类型安装不同的软件组件,在 Apache Hadoop 等分布式应用程序中为每个节点提供一个角色。每个集群都有一个以“j-”开头的唯一标识符。

Amazon EMR 集群拥有三种类型的节点:

  1. 主节点:该节点通过运行软件组件来协调数据和任务在其他节点之间的分配,以方便处理,以此管理集群。主节点跟踪任务的状态并监控集群的健康状况。每个集群都有一个主节点,并且可以创建只有主节点的单节点集群。

  2. 核心节点:该节点具有软件组件,用于在集群上的 Hadoop Distributed File System (HDFS) 中运行任务和存储数据。多节点集群至少有一个核心节点。

  3. 任务节点:该节点具有软件组件,仅运行任务,不会在 HDFS 中存储数据。任务节点可选。

集群步骤是由用户定义的处理单位,大约与操作数据的一种算法相对应。一个步骤就是作为以 Java、Ruby、Perl、Python、PHP、R 或 C++ 编写的 Java Jar 或流程序实施的 Hadoop MapReduce 应用程序。例如,要计算文档中单词的出现频率并按计数排序输出它们,第一步是计算每个单词出现次数的 MapReduce 应用程序,第二步是根据计数对第一步的输出排序的 MapReduce 应用程序。

STARTING – 集群通过配置 EC2 实例开启。
BOOTSTRAPPING – 集群上正在执行引导操作。
RUNNING – 群集当前正在运行的步骤。
WAITING – 群集当前处于活动状态,但没有运行步骤。
TERMINATING – 群集正在关闭。
TERMINATED – 群集已在未发生错误的情况下关闭。
TERMINATED_WITH_ERRORS – 集群在发生错误的情况下关闭。

PENDING – 该步骤正在等待运行。

RUNNING – 该步骤当前正在运行。

COMPLETED – 该步骤已成功完成。

CANCELLED – 该步骤在运行前被取消,因为上一步出现故障或群集在运行前已终止。

FAILED – 该步骤在运行中出现故障。

您可以通过在 AWS 管理控制台中填写简单的群集请求表启动群集。在请求表中,需要指定群集的名称、Amazon S3 中输入数据的位置、处理应用程序、理想的数据输出位置、希望使用的 Amazon EC2 实例数量和类型。您也可以指定一个存储群集日志文件和 SSH 密钥的位置,以便在群集运行时进行登录。此外,您可以使用 RunJobFlow API 或在命令行工具中使用“create”命令启动集群。要使用 EMR Studio 启动集群,请参阅下面的 EMR Studio 部分。

您可以随时在 AWS 管理控制台中选择集群并单击“终止”按钮来终止集群。此外,也可以使用 TerminateJobFlows API。如果终止正在运行的集群,Amazon S3 中尚未保存的任何结果都将丢失,并且所有 Amazon EC2 实例都会关闭。

您可以根据需要运行任何数量的集群。但开始使用时,在所有集群中,运行的实例数限额为 20 个。如果需要运行更多数量的实例,请填写 Amazon EC2 实例请求表。一旦您的 Amazon EC2 限额已提升,将会对您的 Amazon EMR 集群自动应用新的限额。

可以将您的输入数据和数据处理应用程序上传到 Amazon S3。然后,Amazon EMR 将按您指定启动一定数量的 Amazon EC2 实例。该服务开始执行集群,同时使用 S3 URI 方案将输入数据从 Amazon S3 推入启动的 Amazon EC2 实例。一旦集群完成后,Amazon EMR 即可将输出数据传输到 Amazon S3,您在此可以取回数据或将其用作其他集群的输入数据。

Amazon EMR 使用 Hadoop 数据处理引擎来执行 MapReduce 编程模型中实施的计算。客户可根据 map() 和 reduce() 函数执行其算法。该服务可启动客户指定数量的 Amazon EC2 实例,其中包含一个主实例和多个其他节点。Amazon EMR 在这些实例上运行 Hadoop 软件。主节点将输入数据划分成数据块,并将数据块处理分配到其他节点。然后,每个节点对分配给它的数据运行 map 函数,生成中间数据。然后,对中间数据排序和分区,并将其发送到对其在节点本地应用缩减器函数的进程。最后,在文件中收集缩减器任务的输出。一个“集群”可能包含一系列上述 MapReduce 步骤。

有关最新可用实例类型和各区域定价的详细信息,请参阅 EMR 定价页面

运行集群所需的时间取决于若干因素,包括集群的类型、输入数据的数量以及您为集群选择的 Amazon EC2 实例数量和类型。

可以。您可以启动具有三个主节点的 EMR 集群(版本 5.23 或更高),并支持 YARN Resource Manager、HDFS Name Node、Spark、Hive 和 Ganglia 等应用程序的高可用性。如果主要主节点出现故障或者 Resource Manager 或 Name Node 等关键进程崩溃,Amazon EMR 会自动将故障转移到备用主节点。由于主节点不是潜在的单个故障点,您可以不间断地运行长期存在的 EMR 集群。如果发生失效转移,Amazon EMR 会自动使用具有相同配置和启动操作的新主节点替换发生故障的主节点。 

可以。Amazon EMR 对于节点故障具有容错功能,当节点出现故障时将继续执行任务。Amazon EMR 还将在核心节点出现故障时预置新节点。但如果集群内的所有节点全部丢失,Amazon EMR 不会替换任何节点。

可以。您可以 SSH 到自己的群集节点,并从该位置直接执行 Hadoop 命令。如果您需要 SSH 到特定节点,则必须首先 SSH 到主节点,然后再 SSH 到所需节点。

引导操作是 Amazon EMR 中的一项功能,为用户提供一种在执行集群前运行自定义设置的方式。运行集群前,可使用引导操作来安装软件或配置实例。有关引导操作的更多信息,请阅读 EMR 的开发人员指南

您可以集群实例中已安装的任何语言编写 Bootstrap Action 脚本,包括 Bash、Perl、Python、Ruby、C++ 或 Java。可使用一些预定义的引导操作。完成编写脚本后,您需要将其上传到 Amazon S3 并在启动集群时引用其位置。请参阅开发人员指南,了解有关如何使用引导操作的详细信息。

EMR 默认的 Hadoop 配置适合大多数工作负载。不过,根据群集的特定内存和处理要求,最好对这些设置进行调优。例如,如果您的群集任务需要使用大量内存,则可以选择每个核心使用较少的任务并降低任务跟踪程序堆阵大小。对于此情况,在启动时可以使用预定义的引导操作来配置集群。请参阅开发人员指南中的配置内存密集型引导操作,了解配置详细信息和使用说明。此外,还可以使用允许您根据所选的任何价值自定义集群设置的其他预定义引导操作。请参阅开发人员指南中的配置 Hadoop 引导操作,了解相关使用说明。

可以。节点有两种类型:(1) 核心节点,既可使用 Hadoop 分布式文件系统 (HDFS) 托管持续性数据,又能运行 Hadoop 任务;以及 (2) 任务节点,仅用来运行 Hadoop 任务。当群集运行时,您可以增加核心节点的数量,也可以增加或减少任务节点的数量。通过 API、Java 软件开发工具包或命令行客户端可以执行该操作。请参阅开发人员指南中的调整运行的集群部分,了解如何修改运行的集群大小的详细信息。您还可以使用 EMR 托管扩展。

由于核心节点在 HDFS 中托管持续性数据而无法删除,所以应为核心节点预留所需的容量,直到集群完成。由于任务节点可以添加或删除且不含 HDFS,所以它们非常适合仅临时需要容量的情况。您可以在竞价型实例上启动任务实例集,以增加容量,同时最大限度地减少成本。

在某些情况下,您可能会希望修改正在运行的集群中的节点数。如果您的群集运行速度低于预期或时间要求发生变化,您可以增加核心节点数来提高群集性能。如果集群的不同阶段有不同的容量需求,您可以开始使用少量核心节点,并随时增加或减少任务节点的数量来满足集群不断变化的容量要求。 您还可以使用 EMR 托管扩展。

是的。您可以在工作流中包含预定义的步骤,以自动在已知具有不同容量需求的步骤之间调整群集大小。由于所有步骤都保证按顺序运行,这让您能够设置执行给定集群步骤的节点数。

要创建对 EMR CLI 中的所有 IAM 用户可见的新集群,请在创建集群时添加 --visible-to-all-users 标志。例如:elastic-mapreduce --create --visible-to-all-users。在管理控制台内,只需在 Create cluster Wizard 的 Advanced Options 面板上选择“Visible to all IAM Users”即可。

要使现有群集对所有 IAM 用户可见,您必须使用 EMR CLI。使用 --set-visible-to-all-users,并指定群集标识符。例如:elastic-mapreduce --set-visible-to-all-users true --jobflow j-xxxxxxx。此步骤只能由集群的创建者执行。

有关更多信息,请参阅 EMR 开发人员指南中的配置用户权限部分。

可以将标记添加到活跃的 Amazon EMR 集群。Amazon EMR 群集由 Amazon EC2 实例组成,添加到 Amazon EMR 群集的标记将传播到该群集的每个活跃 Amazon EC2 实例中。无法在已终止的集群或者属于活跃集群一部分的已终止 Amazon EC2 实例中添加、编辑或删除标记。

不支持,Amazon EMR 不支持按标记确定基于资源的许可。但需要注意的是,传播到 EC2 实例的标记与正常的 Amazon EC2 标记的行为方式相同,这一点非常重要。因此,从 Amazon EMR 传播的标记如果与 Amazon EC2 的 IAM 策略中的条件匹配,此策略将对这些标记生效。

在 Amazon EMR 集群上最多可以添加十个标记。

是,Amazon EMR 会将添加到群集的标记传播到组成该群集的 EC2 实例。如果将某个标记添加到 Amazon EMR 群集,则此标记也会显示在相关的 Amazon EC2 实例上。同样,如果从 Amazon EMR 群集中删除某个标记,也会从其相关的 Amazon EC2 实例中删除该标记。但是,如果使用 Amazon EC2 的 IAM 策略,并计划使用 Amazon EMR 的标记功能,应确保授予使用 Amazon EC2 标记 API CreateTags 和 DeleteTags 的权限。

此处选择要在 AWS 账单报告中使用的标记。然后,为了查看您的组合资源的成本,您可以根据拥有相同标记键值的资源组织账单信息。

与 Amazon EMR 集群关联的 Amazon EC2 实例将有两个系统标记:

  • aws:elasticmapreduce:instance-group-role=CORE

    • 键 = instance-group role;值 = [CORE or TASK];

  • aws:elasticmapreduce:job-flow-id=j-12345678

    • 键 = job-flow-id;值 = [JobFlowID]

可以,您可以在属于 Amazon EMR 群集的 Amazon EC2 实例上直接添加或删除标记。但是,我们不建议这样做,因为 Amazon EMR 的标记系统不会同步对关联的 Amazon EC2 实例所做的直接更改。我们推荐从 Amazon EMR 控制台、CLI 或 API 添加和删除 Amazon EMR 集群的标记,以确保集群及其关联的 Amazon EC2 实例具有正确的标记。

EMR Serverless

全部打开

Amazon EMR Serverless 是 Amazon EMR 中的一个新部署选项,它让您可以运行 Apache Spark 和 Apache Hive 之类的大数据框架,而无需配置、管理和扩展集群。

数据工程师、分析师和科学家可以使用 EMR Serverless,以利用 Apache Spark 和 Apache Hive 之类的开源框架构建应用程序。他们可以使用这些框架来转换数据、运行交互式 SQL 查询和机器学习工作负载。

您可以使用 EMR Studio、AWS CLI 或 API 提交作业、跟踪作业状态并构建要在 EMR Serverless 上运行的数据管道。要开始使用 EMR Studio,请登录 AWS 管理控制台,导航到“分析”类别下的 Amazon EMR,然后选择 Amazon EMR Serverless。按照 AWS 管理控制台中的说明,导航到“分析”类别下的 Amazon EMR,然后选择 Amazon EMR Serverless。 按照入门指南中的说明创建您的 EMR Serverless 应用程序并提交作业。您可以参考 AWS CLI 页面上的与您的应用程序交互,以启动您的应用程序并使用 CLI 提交作业。您还可以在我们的 GitHub 存储库中找到 EMR Serverless 示例和示例代码。

EMR Serverless 当前支持 Apache Spark 和 Apache Hive 引擎。如果您希望支持其他框架,例如 Apache Presto 或 Apache Flink,请发送请求至 emr-feedback@amazon.com

EMR Serverless 现已在下列 AWS 区域开放:亚太地区(孟买)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)、南美洲(圣保罗)、美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)和美国西部(俄勒冈州)。

Amazon EMR 提供了在基于 EC2 的集群、EKS 集群、Outposts 或 Serverless 上运行应用程序的选项。EC2 集群上的 EMR 适用于在运行其应用程序时需要最大控制能力和灵活性的客户。借助 EC2 集群上的 EMR,客户可以选择 EC2 实例类型以满足特定于应用程序的性能需求、自定义 Linux AMI、自定义 EC2 实例配置、自定义和扩展开源框架,以及在集群实例上安装其他自定义软件。EKS 上的 Amazon EMR 适用于希望在 EKS 上实现标准化以跨应用程序管理集群或在同一集群上使用不同版本开源框架的客户。AWS Outposts 上的 Amazon EMR 适用于希望在 Outpost 内更靠近其数据中心运行 EMR 的客户。EMR Serverless 适用于希望避免管理和操作集群而更喜欢使用开源框架运行应用程序的客户。

特征


EMR Serverless


EC2 上的 Amazon EMR

EKS 上的 Amazon EMR 


支持最新的开源版本


Y


Y

Y

对可用区故障的恢复能力


Y


N

Y

根据需要自动扩展和缩减资源


Y


Y

Y

静态数据加密


Y


Y

Y


支持的开源框架


Spark 和 Hive


多个

Spark


支持使用 AWS Lake Formation 进行细粒度授权


N


Y

N

支持 Apache Hudi 和 Apache Iceberg

Y

Y

Y

与 Apache Ranger 集成以实现表级和列级权限控制


N


Y

N

自定义操作系统映像


Y


Y

Y

自定义安装的开源框架

Y

Y

Y

自定义和加载其他库和依赖项

Y

Y

Y

作为机器学习(ML)工作流程的一部分,从 SageMaker Studio 运行工作负载

N


Y

N

连接到自托管式 Jupyter Notebook

N

Y

Y

使用 Apache Airflow 和 Amazon Managed Workflows for Apache Airflow(MWAA)构建和编排管道


Y


Y

Y

使用 AWS Step Functions 构建和编排管道

Y


Y

Y

EMR Serverless 支持 EMR 版本标签 6.6 及更高版本。借助 EMR Serverless,您可以获得与在其他 EMR 部署选项中相同的性能优化 EMR 运行时,它与标准开源框架 100% API 兼容。

BilledResourcesUtilization 仅考虑将预初始化容量用于作业的持续时间,而不考虑此类容量的任何空闲时间。

如果工作线程的运行时系统持续时间少于 60 秒,BilledResourceUtilization 会将其计为 60 秒,而 TotalResourceUtilization 会将其四舍五入到最接近的秒数。此外,BilledResourceUtilization 会从计算中除去 20GB 的免费存储空间。

借助 Amazon EMR Serverless,您可以创建一个或多个使用开源分析框架的 EMR Serverless 应用程序。要创建应用程序,您必须指定以下属性:1) 适用于您要使用的开源框架版本的 Amazon EMR 发布版本,以及 2) 您希望应用程序使用的特定分析引擎,例如 Apache Spark 3.1 或 Apache Hive 3.0。创建应用程序后,您可以开始运行数据处理作业或对应用程序的交互式请求。

EMR Serverless 应用程序在内部使用工作线程来执行您的工作负载。提交作业后,EMR Serverless 会计算该作业所需的资源并安排工作线程。EMR Serverless 将您的工作负载分解为任务,使用开源框架预置和设置工作线程,并在工作完成时将其停用。EMR Serverless 会根据作业每个阶段所需的工作负载和并行度自动增加或缩减工作线程,因此您无需估计运行工作负载所需的工作线程数量。这些工作线程的默认大小取决于您的应用程序类型和 Amazon EMR 发布版本。您可以在安排作业运行时覆盖这些大小。

使用 EMR Serverless,您可以指定并发工作线程的最小和最大数量以及工作线程的 vCPU 和内存配置。您还可以设置应用程序资源的最大容量限制以控制成本。

在执行以下任一操作时考虑创建多个应用程序:

  1. 使用不同的开源框架

  2. 针对不同的用例使用不同版本的开源框架

  3. 从一个版本升级到另一个版本时执行 A/B 测试

  4. 为测试和生产场景维护单独的逻辑环境

  5. 为面向不同团队的独立逻辑环境提供独立的成本控制和使用跟踪功能

  6. 隔离不同的业务线应用程序

是的,您可以使用 EMR Studio 或 update-application API/CLI 调用修改应用程序属性,例如初始容量、最大容量限制和网络配置。

没有预初始化工作线程的 EMR Serverless 应用程序需要最多 120 秒来确定所需的资源并进行预置。EMR Serverless 提供了一项可选功能,可使工作线程保持初始化并能够随时在几秒钟内做出响应,从而有效地为应用程序创建一个待命工作线程池。此功能称为预初始化容量,可以通过设置应用程序的初始容量参数为每个应用程序配置。

预初始化容量允许作业立即开始,使其成为实施时间敏感型作业的理想选择。您可以指定在启动 EMR Serverless 应用程序时要预初始化的工作线程数量。随后,当用户提交作业时,可以使用预初始化的工作线程立即启动作业。如果作业需要的工作线程多于您选择的预初始化数量,EMR Serverless 会自动添加更多工作线程(可达到您指定的最大并发限制)。作业完成后,EMR Serverless 会自动恢复为维护您指定的预初始化工作线程。如果工作线程空闲 15 分钟,它们会自动关闭。您可以使用 updateApplication API 或 EMR Studio 更改应用程序的默认空闲超时。

您可以使用 EMR Studio、开发工具包/CLI 或我们的 Apache Airflow 连接器提交和管理 EMR Serverless 作业。

对于 PySpark,您可以使用 virtualenv 打包 Python 依赖项并使用 --archives 选项传递存档文件,这样,您的工作线程就能够在作业运行期间使用这些依赖项。对于 Scala 或 Java,您可以将依赖项打包为 jar 包并上传至 Amazon S3,然后在运行 EMR Serverless 作业时,通过 --jars 或 --packages 选项传递这些依赖项。

EMR Serverless 支持基于 Java 的 UDF。您可以将它们打包为 jar,然后上传到 S3,并在 Spark 或 HiveQL 脚本中使用它们。

有关详细信息,请参阅支持的工作线程配置

是的,您可以从 EMR Studio 中或通过调用 cancelJobRun API/CLI 取消正在运行的 EMR Serverless 作业。

您可以在提交作业期间选择适当的存储选项,为 EMR Serverless 中的工作线程添加额外的存储。EMR Serverless 提供两种临时存储选项:

  • 标准存储:默认情况下,此选项为每个工作人员提供 20GB 的临时存储空间。您可以在提交任务时对其进行自定义,并将每个工作线程的存储容量从 20GB 增加到 200GB。

  • 随机优化的磁盘存储:此选项为每个工作线程提供高达 2TB 的临时存储,针对随机密集型工作负载进行了优化。

您可以在我们的 GitHub 存储库中找到 EMR Serverless 代码示例。

EMR Serverless 提供两种工作线程选择:按需工作线程和预初始化工作线程。

按需工作线程仅在工作需要时启动,并在工作完成后自动释放。这可以帮助您节省成本,让您只需为使用的资源付费,并避免因闲置容量而产生任何额外成本。按需工作线程会根据您的工作负载扩展或缩减您的应用程序,让您不必担心资源配置过多或不足。

预初始化工作线程是一项可选功能,可以让工作线程在几秒钟内准备好响应。这就为应用程序有效创建了一个工作线程热池,可以让作业立即启动,非常适合迭代应用程序和时间敏感型作业。

是的,可以在多个可用区中配置 EMR Serverless 应用程序。设置多个可用区的流程取决于所使用的工作线程类型。

仅使用按需工作线程时,EMR Serverless 默认会将作业分发到多个可用区,但每个作业仅在一个可用区中运行。您可以将子网与可用区关联起来,以选择要使用的可用区。如果某个可用区出现故障,EMR Serverless 会自动在另一个运行正常的可用区中运行您的任务。

使用预初始化工作线程时,EMR Serverless 会从您指定的子网中选择运行状况良好的可用区。作业会在该可用区中提交,直到您停止该应用程序。如果某个可用区受损,您可以重启应用程序以切换到另一个运行正常的可用区。

在没有 VPC 连接的情况下配置时,EMR Serverless 只能访问同一区域中的某些 AWS 资源。请参阅注意事项。要访问其他区域中的 AWS 资源或非 AWS 资源,您需要设置 VPC 访问和 NAT 网关以路由到 AWS 资源的公共端点。

Amazon EMR Serverless 应用程序级和作业级指标每 30 秒向 Amazon CloudWatch 发布一次。

在 EMR Studio 中,您可以选择正在运行或已完成的 EMR Serverless 作业,然后单击 Spark UI 或 Tez UI 按钮以启动它们。

是的,您可以配置 Amazon EMR Serverless 应用程序以访问自己的 VPC 中的资源。请参阅文档中的配置 VPC 访问部分以了解更多信息。 

每个 EMR Serverless 应用程序都与其他应用程序隔离,并在安全 Amazon VPC 上运行。

Amazon EMR Serverless 将推出一项新的服务限额,称为每账户的最大并发 vCPU 数量。借助这种基于 vCPU 的配额,您可以设置应用程序在区域内最多能够纵向扩展至的最大汇总 vCPU 数量。现有的应用程序级别、基于工作线程的限额(最大活跃工作线程数)将于 2023 年 2 月 1 日结束支持。

您可以在 AWS 服务配额管理控制台中查看、管理和请求增加限额。有关更多信息,请参阅《服务配额用户指南》中的“请求增加限额”。

EMR Serverless 提供两种成本控制 - 1/ 每个账户的最大并发 vCPU 限额适用于您账户中某个区域中的所有 EMR Serverless 应用程序。2/ maximumCapacity 参数限制特定 EMR Serverless 应用程序的 vCPU。您应该使用基于 vCPU 的限额来限制一个区域中所有应用程序使用的最大并发 vCPU,并使用 maximumCapacity 属性来限制特定应用程序使用的资源。例如 如果您有 5 个应用程序并且每个应用程序最多可以扩展到 1000 个 vCPU,请将每个应用程序的 maximumCapacity 属性设置为 1000 个 vCPU,并将基于账户级 vCPU 的限额配置为 5 * 1000 = 5000 个 vCPU。

如果您超过账户级 vCPU 限额,EMR Serverless 将停止供应新容量。如果您在超过限额后尝试创建新应用程序,应用程序创建将失败并显示错误消息“应用程序创建失败,因为您已超出每个账户服务限额的最大并发 vCPU 数。您可以使用 AWS 服务限额控制台查看和管理您的服务限额。” 如果您在超过限额后提交新作业,该作业将失败并显示错误消息:“作业失败,因为您已超出每个账户服务限额的最大并发 vCPU。您可以使用 AWS 服务限额控制台查看和管理您的服务配额。 有关更多详细信息,请参阅文档

Amazon EMR Serverless 可以通过三种方式帮助您节省成本。首先,管理、保护和扩展集群没有运营开销。其次,EMR Serverless 会在处理作业的每个阶段自动增加工作线程,并在不需要时减少工作线程。您需要为从工作线程开始运行到停止期间使用的汇总 vCPU、内存和存储资源付费,该时间四舍五入到最接近的秒数,最小值为 1 分钟。例如,您的作业在前 10 分钟的作业处理中可能需要 10 个工作线程,而在接下来的 5 分钟需要 50 个工作线程。使用细粒度的自动扩展功能,您只需承担 10 个工作线程运行 10 分钟加 50 个工作线程运行 5 分钟的费用。因此,您不必为未充分利用的资源付费。第三,EMR Serverless 包括适用于 Apache Spark 和 Apache Hive 以及 Presto 的 Amazon EMR 性能优化运行时。Amazon EMR 运行时与 API 兼容,速度是标准开源分析引擎的两倍以上,因此您的作业运行速度更快,计算成本更低。

这取决于 EC2 上的当前 EMR 的集群利用率。如果您使用 EC2 按需型实例运行 EMR 集群,则在您当前的集群利用率低于 70% 时,EMR Serverless 将可实现更低的总拥有成本(TCO)。如果您使用 EC2 Savings Plans,则在您当前的集群利用率低于 50% 时,EMR Serverless 将实现更低的 TCO。如果您使用 EC2 竞价型实例,EC2 上的 Amazon EMR 和 EKS 上的 Amazon EMR 仍将保持更高成本效益。

是的,如果您在作业完成后不停止工作线程,预初始化的工作线程将会产生费用。

对于 PySpark,您可以使用 virtualenv 打包 Python 依赖项并使用 --archives 选项传递存档文件,这样,您的工作线程就能够在作业运行期间使用这些依赖项。对于 Scala 或 Java,您可以将依赖项打包为 jar 包并上传至 Amazon S3,然后在运行 EMR Serverless 作业时,通过 --jars 或 --packages 选项传递这些依赖项。

对于 PySpark,您可以使用 virtualenv 打包 Python 依赖项并使用 --archives 选项传递存档文件,这样,您的工作线程就能够在作业运行期间使用这些依赖项。对于 Scala 或 Java,您可以将依赖项打包为 jar 包并上传至 Amazon S3,然后在运行 EMR Serverless 作业时,通过 --jars 或 --packages 选项传递这些依赖项。

Amazon EMR Serverless 消除了 Apache Spark 工作负载的本地存储预置,最高可将数据处理成本降低 20%,并防止因磁盘容量限制而导致的作业失败。EMR Serverless 会自动处理数据混洗等中间数据操作,无需您指定任何与基础设施相关的决策。通过独立于计算工作线程自动处理中间数据,该优化功能使 Spark 的动态资源分配(DRA)能够在不再需要计算资源进行处理时将其释放,而不是为了保留临时本地数据而持续运行资源。这一自动增强功能为大规模聚合、关联、高排序分析等广泛转换类工作负载提供了更高的弹性,让计算资源可以在各个作业阶段动态扩缩,不受本地存储数据的限制。

只需在使用 EMR 7.12 或更高版本时启用该功能即可。您的 Spark 作业会自动享受到优化的中间数据处理能力,无需您进行任何配置。您可以通过 Spark Live UI 实时监控作业,也可以在 Spark History Server 中查看已完成作业的详细数据混洗和每阶段溢出指标。

您的中间数据仅在作业运行期间存储,并在作业完成后自动删除,确保数据不会在作业生命周期外留存。

这种自动优化功能通过多层保护保持与 EMR Serverless 一致的企业级安全标准。所有数据在传输过程中(您的 EMR Serverless 应用程序与中间数据处理层之间)、以及临时存储静止状态下,都会通过 AWS 托管的加密密钥进行加密保护。此功能会将中间数据存储在您命名空间内的作业专属标识符下,从而执行严格的数据隔离与访问控制,确保只有特定作业才可访问您的数据。您现有的 EMR Serverless 访问控制与权限策略仍然适用,因此受表或 Lake Formation 策略管控的数据仍能获得全面保护。 为了增强安全性,EMR Serverless 会使用服务自有角色(而非作业的执行角色)来处理中间数据,以此防止权限提升或未经授权的跨账户访问风险。如果有任何安全检查未通过,您的作业将立即停止,以确保您的数据始终处于受保护状态。