使用 EMR Notebooks 时的注意事项 - Amazon EMR

使用 EMR Notebooks 时的注意事项

注意

EMR Notebooks 在新控制台中作为 Amazon EMR Studio Workspaces 提供。您仍然可以在旧控制台中使用现有笔记本,但无法在其中创建新笔记本。新控制台中的创建 Workspace 按钮将取代此功能。要访问或创建 Workspaces,EMR Notebooks 用户需要额外的 IAM 角色权限。有关更多信息,请参阅 Amazon EMR Notebooks are Amazon EMR Studio Workspaces in new console(Amazon EMR Notebooks 在新控制台中为 Amazon EMR Studio Workspaces)和 What's new in the console?(控制台中有哪些新功能?)

在使用 EMR 笔记本创建集群和开发解决方案时,请考虑以下要求。

集群要求

  • 启用 Amazon EMR 阻止公有访问 – 通过对集群进行入站访问,集群用户能够执行笔记本内核。确保只有授权用户才能访问集群。我们强烈建议您将阻止公有访问保持启用状态,并将入站 SSH 流量仅限于可靠来源。有关更多信息,请参阅使用 Amazon EMR 阻止公有访问使用安全组控制网络流量

  • 使用兼容的集群 – 附加到笔记本的集群必须满足以下要求:

    • 仅支持使用 Amazon EMR 创建的集群。您可以在 Amazon EMR 中单独创建集群,然后附加 EMR 笔记本,也可以在创建 EMR 笔记本时创建可兼容的集群。

    • 仅支持使用 Amazon EMR 发行版 5.18.0 及更高版本创建的集群。请参阅集群发行版的功能差异

    • 不支持使用具有 AMD EPYC 处理器的 Amazon EC2 实例创建的集群(例如 m5a.* 和 r5a.* 实例类型)。

    • EMR Notebooks 仅适用于在 VisibleToAllUsers 设置为 true 的情况下创建的集群。默认情况下 VisibleToAllUserstrue

    • 必须在 EC2-VPC 内启动集群。支持公有和私有子网。不支持 EC2-Classic 平台。

    • 启动的集群必须安装有 Hadoop、Spark 和 Livy。可以安装其它应用程序,但 EMR Notebooks 目前仅支持 Spark 集群。

      重要

      对于 Amazon EMR 发行版本 5.32.0 及更高版本或 6.2.0 及更高版本,您的集群还必须运行 Jupyter Enterprise Gateway 应用程序才能使用 EMR Notebooks。

    • 不支持使用 Kerberos 身份验证的集群。

    • 与 AWS Lake Formation 集成的集群仅支持安装笔记本范围的库。不支持在集群上安装内核和库。

    • 不支持具有多个主节点的集群。

    • 不支持使用基于 AWS Graviton2 的 Amazon EC2 实例的集群

集群发行版的功能差异

我们强烈建议您将 EMR Notebooks 与使用 Amazon EMR 发行版本 5.30.0、5.32.0 或更高版本或 6.2.0 或更高版本创建的集群一起使用。借助这些版本,EMR Notebooks 在附加的 Amazon EMR 集群上运行内核。内核和库可直接安装到集群主节点上。将 EMR Notebooks 与这些集群版本结合使用具有以下好处:

  • 提高了性能 – 笔记本内核在具有所选 EC2 实例类型的集群上运行。早期版本在无法调整大小、访问或自定义的专用实例上运行内核。

  • 能够添加和自定义内核 – 您可以使用 condapip 连接到集群来安装内核包。此外,支持在笔记本单元中使用终端命令来安装 pip。在早期版本中,仅预安装的内核可用(Python、PySpark、Spark 和 SparkR)。有关更多信息,请参阅在集群主节点上安装内核和 Python 库

  • 能够安装 Python 库 - 您可以使用 condapip 在集群主节点上安装 Python 库。我们建议使用 conda。对于早期版本,仅支持适用于 PySpark 的笔记本范围的库

集群版本支持的 EMR Notebooks 功能
集群发布版本 适用于 PySpark 的笔记本范围的库 集群上的内核安装 主节点上的 Python 库安装

版本 5.18.0 之前的版本

不支持 EMR Notebooks

5.18.0–5.25.0

5.26.0–5.29.0

5.30.0

6.0.0

5.32.0 及更高版本,以及 6.2.0 及更高版本

并发附加的 EMR Notebooks 的限制

创建支持笔记本的集群时,请考虑集群主节点的 EC2 实例类型。此 EC2 实例的内存限制决定了可以同时准备好在集群上运行代码和查询的笔记本的数量。

主节点 EC2 实例类型 EMR Notebooks 数量

*.medium

2

*.large

4

*.xlarge

8

*.2xlarge

16

*.4xlarge

24

*.8xlarge

24

*.16xlarge

24

Jupyter notebook 和 Python 版本

EMR Notebooks 运行 Jupyter notebook 版本 6.0.2 和 Python 3.6.5,而不管附加的集群的 Amazon EMR 发行版本如何。

安全注意事项

使用加密的 S3 位置

如果在 Amazon S3 中指定一个加密位置来存储笔记本文件,则必须将 EMR Notebooks 的服务角色 设置为密钥用户。默认服务角色为 EMR_Notebooks_DefaultRole。如果您使用 AWS KMS 密钥进行加密,请参阅《AWS Key Management Service 开发人员指南》中的在 AWS KMS 中使用密钥策略添加密钥用户的支持文章