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

使用 EMR Notebooks 时的注意事项

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

集群要求

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

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

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

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

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

    • EMR Notebooks 仅适用于在 VisibleToAllUsers 设置为 true 的情况下创建的集群。默认情况下 VisibleToAllUserstrue。有关更多信息,请参阅了解 EMR 集群 VisibleToAllUsers 设置

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

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

      重要

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

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

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

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

    • 不支持使用基于 Amazon 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)。有关更多信息,请参阅在集群主节点 (master node) 上安装内核和 Python 库

  • 能够安装 Python 库 – 您可以使用 condapip 在集群主节点 (master node) 上安装 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 实例的内存限制决定了可以同时准备好在集群上运行代码和查询的笔记本的数量。

主节点 (master node) EC2 实例类型 EMR Notebooks 数量

*.medium

2

*.large

4

*.xlarge

8

*.2xlarge

16

*.4xlarge

24

*.8xlarge

24

*.16xlarge

24

Jupyter 笔记本和 Python 版本

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

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