注意事项和限制 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

注意事项和限制

使用 Amazon EMR Studio 时请考虑以下事项:

  • EMR Studio 在以下Amazon区域可用:美国东部(俄亥俄、弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(孟买、首尔、新加坡、悉尼、东京)、加拿大(中部)和欧洲(法兰克福、爱尔兰、伦敦、斯德哥尔摩)。

  • EMR Studio 适用于 Amazon EMR 版本 5.32.0(EMR 5.x 系列)或 6.2.0(EMR 6.x 系列)及更高版本。

  • 您可以为 EMR Studio 指定一个 Amazon Virtual Private Cloud(Amazon VPC)和最多五个子网。Studio 用户选择要与 Workspace 关联的其中一个子网。Workspace 可以访问选定子网中的 EMR 计算资源。有关适用于 Amazon EMR 的 VPC 的更多信息,请参阅 Amazon VPC 选项

  • 要让用户为 Workspace 预置在 Amazon EC2 上运行的新 EMR 集群,请将 EMR Studio 与一组集群模板关联起来。管理员可以使用 Amazon Service Catalog 定义集群模板,并且可以选择用户或组是可以访问 Studio 中的集群模板,还是不能访问任务集群模板。

  • 要控制 Studio 用户可执行的操作,您可以使用与用户的 IAM 身份关联的 IAM 权限,也可以使用 Studio 用户角色,在您使用 Amazon Web Services SSO 身份验证的时候,会有会话策略映射到用户身上。

  • 当您定义对存储在 Amazon S3 中的笔记本文件的访问权限或从 Amazon Secrets Manager 读取密钥时,请使用 EMR 服务角色。不支持使用会话策略定义这些权限。

  • 您可以创建多个 EMR Studio 来控制对不同 VPC 或子网中的 EMR 集群的访问。

  • 请使用 Amazon CLI 设置 Amazon EMR on EKS 集群。然后,您可以使用 Studio 界面通过托管式终端节点将集群附加到 Workspaces,以运行笔记本任务。

  • EMR Studio 不支持以下 Python 魔术命令:

    • %alias

    • %alias_magic

    • %automagic

    • %macro

    • %%js

    • %%javascript

    • 使用 %configure 修改 proxy_user

    • 使用 %env%set_env 修改 KERNEL_USERNAME

  • Amazon EMR on EKS 集群不支持 EMR Studio 的 SparkMagic 命令。

已知问题

  • 在创建 Studio 之前,请确保在浏览器中禁用了 FoxyProxy 或 SwitchyOmega 等代理管理工具。当您选择 Create Studio (创建 Studio) 时,活动代理可能会导致错误,并导致出现 Network Failure (网络故障) 错误消息。

  • 由于超时问题,在 Amazon EMR on EKS 集群上运行的内核会无法启动。如果您在启动内核时遇到错误或问题,请关闭笔记本文件、关闭内核,然后重新打开笔记本文件。

  • 当您使用 Amazon EMR on EKS 集群时,Restart kernel (重新启动内核) 操作将无法按预期工作。在您选择 Restart kernel (重新启动内核) 后,请刷新 Workspace 以使重启生效。

  • 如果 Workspace 未附加到集群,则当 Studio 用户打开笔记本文件并尝试选择内核时会显示一条错误消息。您可以通过选择 Ok (确定) 忽略此错误消息,但您必须先将 Workspace 附加到集群并选择内核,然后才能运行笔记本代码。

  • 当您使用具有安全配置的 Amazon EMR 6.2.0 来设置集群安全时,Workspace 界面显示为空白并且无法按预期工作。如果您要为集群的 EMRFS 配置数据加密或 Amazon S3 授权,我们建议您使用其他受支持的 EMR 版本。EMR Studio 适用于 Amazon EMR 版本 5.32.0(EMR 5.x 系列)或 6.2.0(EMR 6.x 系列)及更高版本。

  • 当您从笔记本文件启动集群上 Spark UI 时,您可以在运行笔记本代码后查看有关任务的信息。但是,当您从 Studio 中 Clusters (集群) 列表启动 Spark 历史记录服务器时,任务可能将有长达两分钟的时间不显示。

  • 当您调试 Amazon EC2 任务上运行的 Amazon EMR时,指向集群上 Spark UI 的链接可能无法正常工作或无法显示。要重新生成链接,请创建一个新的笔记本单元格并运行 %%info 命令。

  • Jupyter Enterprise Gateway 不会在以下 Amazon EMR 发行版本中清理集群主节点 (master node) 上的空闲内核:5.32.0、5.33.0、6.2.0 和 6.3.0。空闲内核消耗计算资源,这可能会导致长时间运行的集群出现故障。您可以使用以下示例脚本为 Jupyter Enterprise Gateway 配置空闲内核清理。您可以使用 SSH 连接到主节点 (master node) ,或以步骤的形式提交脚本。有关更多信息,请参阅在 Amazon EMR 集群上运行命令和脚本

    #!/bin/bash sudo tee -a /emr/notebook-env/conf/jupyter_enterprise_gateway_config.py << EOF c.MappingKernelManager.cull_connected = True c.MappingKernelManager.cull_idle_timeout = 10800 c.MappingKernelManager.cull_interval = 300 EOF sudo systemctl daemon-reload sudo systemctl restart jupyter_enterprise_gateway

功能限制

Amazon EMR Studio 不支持以下 Amazon EMR 功能:

  • 在使用指定 Kerberos 身份验证的安全配置创建的 EMR 集群上附加和运行任务

  • 具有多个主节点 (master node) 的集群

  • 与 Amazon Lake Formation 集成的集群

  • 使用基于 Amazon Graviton2 的 Amazon EC2 实例的集群

EMR Studio 的服务限制

下表呈现了 EMR Studio 的服务限制。

项目 限制
EMR Studio 每个 Amazon 账户最多 10 个
子网 每个 EMR Studio 最多关联 5 个
Amazon Web Services SSO 组 每个 EMR Studio 最多分配 5 个
Amazon Web Services SSO 用户 每个 EMR Studio 最多分配 100 个

Amazon EMR Studio 的集群要求

在 Amazon EC2 上运行的 Amazon EMR 集群

您为 EMR Studio Workspace 创建的在 Amazon EC2 上运行的所有 Amazon EMR 集群都必须满足以下要求。您使用 EMR Studio 界面创建的集群会自动满足这些要求。

  • 集群必须使用 Amazon EMR 版本 5.32.0(EMR 5.x 系列)或 6.2.0(EMR 6.x 系列)及更高版本。您可以使用 EMR 控制台、Amazon Command Line Interface 或 SDK 创建集群,然后将其附加到同一 Amazon Virtual Private Cloud 子网中的 EMR Studio Workspace。Studio 用户也可选择在创建 Amazon EMR Workspace 或在其中工作时创建和附加集群。有关更多信息,请参阅 将集群附加到 Workspace

  • 集群必须具备设置为 true 的 VisibleToAllUsers 属性。有关更多信息,请参阅了解 EMR 集群 VisibleToAllUsers 设置

  • 集群必须在 Amazon Virtual Private Cloud 中启动。不支持 EC2-Classic 平台。

  • 集群必须安装有 Spark、Livy 和 Jupyter Enterprise Gateway。您可以安装其他应用程序,但 EMR Studio 必须与 Spark 集群配合使用。

  • 集群必须在网络地址转换 (NAT) 的私有子网中启动,公共托管的 Git 存储库与 EMR Studio 才能配合使用。用户必须在该私有子网中创建 Workspaces。

我们会监督您始终启用 Amazon EMR 阻止公共访问 (Block Public Access) 设置,同时限制入站 SSH 流量进入信任源。对集群的入站访问允许用户在集群上运行笔记本。有关更多信息,请参阅 使用 Amazon EMR 阻止公有访问使用安全组控制网络流量

Amazon EMR on EKS 集群

除了在 Amazon EC2 上运行的 EMR 集群之外,您还可以使用 Amazon CLI 为 EMR Studio 设置和管理 Amazon EMR on EKS 集群。请使用以下准则设置 EMR on EKS 集群:

  • 针对 Amazon EMR on EKS 集群创建托管式 HTTPS 终端节点。用户将 Workspace 附加到托管式终端节点。您用于注册虚拟集群的 Amazon Elastic Kubernetes Service (EKS) 集群必须具有私有子网才能启用托管式终端节点。

  • 如果您想使用公共托管的 Git 存储库,请使用具有至少一个私有子网和网络地址转换 (NAT) 的 Amazon EKS 集群。用户必须在该私有子网中创建 Workspaces。

  • 避免使用 Amazon EKS 优化的 Arm Amazon Linux AMI,因为 EMR on EKS 托管式终端节点不支持。

  • 避免使用仅限 Amazon Fargate 的 Amazon EKS 集群,因为不受支持。

有关更多信息,请参阅 为 Amazon EMR Studio 设置 Amazon EMR on EKS