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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EMR Studio 功能、要求和限制

本主题包括使用 Amazon EMR Studio 时要考虑的事项,包括有关区域和工具、集群要求和技术限制的注意事项。

注意事项

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

  • EMR Studio 提供以下版本: Amazon Web Services 区域

    • 美国东部(俄亥俄州)(us-east-2)

    • 美国东部(弗吉尼亚州北部)(us-east-1)

    • 美国西部(北加利福尼亚)(us-west-1)

    • 美国西部(俄勒冈州)(us-west-2)

    • 非洲(开普敦)(af-south-1)

    • 亚太地区(香港)(ap-east-1)

    • 亚太地区(雅加达)(ap-southeast-3)*

    • 亚太地区(墨尔本)(ap-southeast-4)*

    • 亚太地区(孟买)(ap-south-1)

    • 亚太地区(大阪)(ap-northeast-3)*

    • 亚太地区(首尔)(ap-northeast-2)

    • 亚太地区(新加坡)(ap-southeast-1)

    • 亚太地区(悉尼)(ap-southeast-2)

    • 亚太地区(东京)(ap-northeast-1)

    • 加拿大(中部)(ca-central-1)

    • 欧洲地区(法兰克福)(eu-central-1)

    • 欧洲地区(爱尔兰)(eu-west-1)

    • 欧洲(伦敦)(eu-west-2)

    • 欧洲(米兰)(eu-south-1)

    • 欧洲(巴黎)(eu-west-3)

    • 欧洲(西班牙)(eu-south-2)

    • 欧洲地区(斯德哥尔摩)(eu-north-1)

    • 欧洲(苏黎世)(eu-central-2)*

    • 以色列(特拉维夫)(il-central-1)*

    • 中东(阿联酋)(me-central-1)*

    • 南美洲(圣保罗)(sa-east-1)

    • Amazon GovCloud (美国东部) (gov-us-east-1)

    • Amazon GovCloud (美国西部) (gov-us-west-1)

    * 这些区域不支持实时 Spark UI。

  • 要让用户为工作区配置在 Ama EC2 zon 上运行的新 EMR 集群,您可以将 EMR Studio 与一组集群模板相关联。管理员可以使用 Service Catalog 定义集群模板,并且可以选择用户或组是可以访问 Studio 中的集群模板,还是不能访问集群模板。

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

  • 您可以创建多个 EMR 工作室来控制对不同的 EMR 集群的访问。 VPCs

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

  • 在 Amazon EMR 中使用可信身份传播时,还需要注意一些其他事项,这些事项也同样适用于 EMR Studio。有关更多信息,请参阅 Amazon EMR 与 Identity Center 集成的注意事项和限制

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

    • %alias

    • %alias_magic

    • %automagic

    • %macro

    • %%js

    • %%javascript

    • 使用 %configure 修改 proxy_user

    • 使用 %env%set_env 修改 KERNEL_USERNAME

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

  • 要在 Notebook 单元格中编写多行 Scala 语句,请确保除最后一行以外的所有其他行均以句点结束。下面的示例对多行 Scala 语句使用了正确的句法。

    val df = spark.sql("SELECT * from table_name). filter("col1=='value'"). limit(50)
  • 为了提高可能会在 Amazon EMR 中使用的非控制台应用程序的安全性,应用程序托管域会注册到公共后缀列表(PSL)中。这些托管域的示例包括以下各项:emrstudio-prod.us-east-1.amazonaws.comemrnotebooks-prod.us-east-1.amazonaws.comemrappui-prod.us-east-1.amazonaws.com。为进一步增强安全性,如果您需要在默认域名中设置敏感 Cookie,我们建议您使用带 __Host- 前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造(CSRF)攻击。有关更多信息,请参阅 。Set-CookieMozilla 开发者网络中的页面。

  • Amazon EMR Studio 工作空间和持久用户界面终端节点使用经过 FIPS 140 验证的加密模块 encryption-in-transit,这使得受监管的工作负载可以更轻松地采用该服务。有关永久用户界面终端节点的更多背景信息,请参阅在 Amazon EMR 中查看永久应用程序用户界面。有关笔记本的其他背景信息,请参阅 Amazon EMR 笔记本概述

已知问题

  • 使用启用了可信身份传播的 IAM Identity Center 的 EMR Studio 只能与同样使用可信身份传播的 EMR 集群关联。

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

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

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

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

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

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

  • Jupyter Enterprise Gateway 不会在以下 Amazon EMR 发行版本中清理集群主节点上的空闲内核:5.32.0、5.33.0、6.2.0 和 6.3.0。空闲内核消耗计算资源,这可能会导致长时间运行的集群出现故障。您可以使用以下示例脚本为 Jupyter Enterprise Gateway 配置空闲内核清理。您可以使用 SSH 连接到 Amazon EMR 集群主节点,或以步骤的形式提交脚本。有关更多信息,请参阅在 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 版本 5.32.0、5.33.0、6.2.0 或 6.3.0 配合使用时,Amazon EMR 会将集群标记为空闲,即使您有活动的 Python3 内核,也有可能自动终止该集群。这是因为执行 Python3 内核不会在该集群上提交 Spark 作业。要将自动终止与 Python3 内核配合使用,我们建议您使用 Amazon EMR 版本 6.4.0 或更高版本。有关自动终止的更多信息,请参阅 使用自动终止策略进行 Amazon EMR 集群清理

  • 当你习惯%%display在表格 DataFrame 中显示 Spark 时,很宽的表可能会被截断。您可以右键单击输出,然后选择 Create New View for Output(为输出创建新视图),以获取输出的可滚动视图。

  • 启动基于 Spark 的内核(例如 PySpark Spark 或 SparkR)会启动 Spark 会话,而在笔记本中运行单元会将该会话中的 Spark 作业排入队列。当您中断正在运行的单元格时,Spark 作业将继续运行。要停止 Spark 作业,您应该使用集群上的 Spark UI。有关如何连接到 Spark UI 的说明,请参阅 使用 EMR Studio 调试应用程序和任务

  • 在中以 root 用户身份使用 Amazon EMR Studio 工作空间 Amazon Web Services 账户 会导致错误。403: Forbidden这是因为 Amazon EMR 中的 Jupyter Enterprise Gateway 配置不允许访问根用户。建议您不要使用根用户执行日常任务。有关其他身份验证选项,请参阅 Amazon Identity and Access Management for Amazon EMR

功能限制

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

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

  • 具有多个主节点的集群

  • 使用基于 Amazon Graviton2 的亚马逊 EC2 实例的集群 EMR 6.x 版本低于 6.9.0,5.x 版本低于 5.36.1

使用可信身份传播的 Studio 不支持以下功能:

  • 在不使用模板的情况下创建 EMR 集群。

  • 使用 EMR Serverless 应用程序。

  • 启动 EKS 上的 Amazon EMR 集群。

  • 使用运行时系统角色。

  • 启用 SQL Explorer 或 Workspace 协作。

EMR Studio 的 Service Limits

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

Item 限制
EMR Studio 每个 Amazon 账户最多 100
子网 每个 EMR Studio 最多关联 5 个
IAM Identity Center 组 每个 EMR Studio 最多分配 5 个
IAM Identity Center 用户 每个 EMR Studio 最多分配 100 个