本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 EMR Studio 使用EMR无服务器运行交互式工作负载
概述
交互式应用程序是启用了交互式功能的EMR无服务器应用程序。借助 Amazon EMR Serverless 交互式应用程序,您可以使用在 Amazon Studio 中管理的 Jupyter 笔记本电脑执行交互式工作负载。EMR这可以帮助数据工程师、数据科学家和数据分析师使用 EMR Studio 对 Amazon S3 和 Amazon DynamoDB 等数据存储中的数据集进行交互式分析。
EMRServerless 中交互式应用程序的用例包括以下内容:
-
数据工程师使用 EMR Studio 中的IDE经验来创建ETL脚本。该脚本从本地提取数据,转换数据以供分析,并将数据存储在 Amazon S3 中。
-
数据科学家使用笔记本来探索数据集并训练机器学习 (ML) 模型以检测数据集中的异常。
-
数据分析师探索数据集并创建生成每日报告的脚本,以更新业务仪表板等应用程序。
先决条件
要在 EMR Serverless 中使用交互式工作负载,必须满足以下要求:
-
EMRAmazon EMR 6.14.0 及更高版本支持无服务器交互式应用程序。
-
要访问您的交互式应用程序、执行您提交的工作负载以及从 EMR Studio 运行交互式笔记本,您需要特定的权限和角色。有关更多信息,请参阅 交互式工作负载所需的权限。
交互式工作负载所需的权限
除了访问 EMR Serverless 所需的基本权限外,您还必须为您的IAM身份或角色配置其他权限:
- 访问您的交互式应用程序
-
设置 EMR Studio 的用户和工作区权限。有关更多信息,请参阅《亚马逊EMR管理指南》中的 “配置 EMR Studio 用户权限”。
- 执行您使用EMR无服务器提交的工作负载
-
设置作业运行时角色。有关更多信息,请参阅 创建作业运行时角色。
- 从 EMR Studio 运行交互式笔记本
-
在 Studio 用户的IAM策略中添加以下额外权限:
-
emr-serverless:AccessInteractiveEndpoints
-授予访问和连接您指定为的交互式应用程序的权限Resource
。从 EMR Studio 工作区连接到EMR无服务器应用程序需要此权限。 -
iam:PassRole
-授予访问您在附加到应用程序时计划使用的IAM执行角色的权限。从 EMR Studio 工作区连接到EMR无服务器应用程序需要相应的PassRole
权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessInteractiveAccess", "Effect": "Allow", "Action": "emr-serverless:AccessInteractiveEndpoints", "Resource": "arn:aws:emr-serverless:
Region
:account
:/applications/*" }, { "Sid": "EMRServerlessRuntimeRoleAccess", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "interactive-execution-role-ARN
", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } } ] } -
配置交互式应用程序
使用以下高级步骤在 Amazon Studio 中创建具有 Amazon EMR Studio 交互功能的EMR无服务器应用程序 AWS Management Console.
-
按照中的开始使用 Amazon EMR Serverless步骤创建应用程序。
-
然后,从 EMR Studio 启动工作区并作为计算选项连接到EMR无服务器应用程序。有关更多信息,请参阅《EMR无服务器入门》文档步骤 2 中的 “交互式工作负载” 选项卡。
将应用程序连接到 Studio Workspace 时,如果应用程序尚未运行,则该应用程序会自动启动触发。您也可以预先启动应用程序,并在将其连接到工作区之前将其准备就绪。
交互式应用程序的注意事项
-
EMRAmazon EMR 6.14.0 及更高版本支持无服务器交互式应用程序。
-
EMRStudio 是唯一一款与EMR无服务器交互式应用程序集成的客户端。EMR无服务器交互式应用程序不支持以下 EMR Studio 功能:工作区协作、SQL Explorer 和笔记本的编程执行。
-
只有 Spark 引擎支持交互式应用程序。
-
交互式应用程序支持 Python 3 PySpark 和 Spark Scala 内核。
-
您可以在单个交互式应用程序上运行多达 25 个并发笔记本电脑。
-
没有端点或API接口支持带有交互式应用程序的自托管 Jupyter 笔记本电脑。
-
为了获得优化的启动体验,我们建议您为驱动程序和执行程序配置预先初始化的容量,并预先启动应用程序。在预启动应用程序时,要确保它已准备就绪,以便将其连接到 Workspace。
aws emr-serverless start-application \ --application-id
your-application-id
-
默认情况下,已
autoStopConfig
为应用程序启用。这会在空闲时间 30 分钟后关闭应用程序。您可以将此配置作为create-application
或update-application
请求的一部分进行更改。 -
使用交互式应用程序时,我们建议您配置预先初始化的内核、驱动程序和执行程序容量以运行笔记本电脑。每个 Spark 交互式会话都需要一个内核和一个驱动程序,因此 EMR Serverless 会为每个预初始化的驱动程序维护一个预先初始化的内核工作程序。默认情况下,即使您没有为驱动程序指定任何预先初始化的容量,EMRServerless 也会在整个应用程序中保持一个内核工作程序的预初始化容量。每个内核工作程序使用 4 v CPU 和 16 GB 的内存。有关当前定价信息,请参阅 Amazon EMR 定价
页面。 -
你必须有足够的 v CPU 服务配额 AWS 账户 运行交互式工作负载。如果您不运行支持 Lake Formation 的工作负载,我们建议至少使用 24 v。CPU如果你这样做,我们建议至少使用 28 v CPU。
-
EMR如果笔记本电脑的内核闲置时间超过 60 分钟,Serverless 会自动从笔记本电脑中终止内核。EMRServerless 计算笔记本会话期间上次完成的活动后的内核空闲时间。您目前无法修改内核空闲超时设置。
-
要在交互式工作负载中启用 Lake For
spark.emr-serverless.lakeformation.enabled
mation,请在创建EMR无服务器应用程序时将配置设置为runtime-configuration
对象中的spark-defaults
分类true
下。要了解有关在EMR无服务器中启用 Lake Formation 的更多信息,请参阅在亚马逊EMR中启用 Lake For mation。