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