

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

# EMR Notebooks 的要求、发行版本差异和安全性
<a name="emr-managed-notebooks-considerations"></a>

**注意**  
EMR Notebooks 在控制台中作为 Amazon EMR Studio Workspaces 提供。通过控制台中的**创建 Workspace** 按钮，可以创建新的 Notebooks。要访问或创建 Workspaces，EMR Notebooks 用户需要额外的 IAM 角色权限。有关更多信息，请参阅 [Amazon EMR Notebooks 是控制台中的 Amazon EMR Studio Workspaces](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) 和 [Amazon EMR 控制台](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)。

使用 EMR Notebook 创建集群和开发解决方案时，请考虑以下要求、发行版本差异、安全信息和其他注意事项。

## 集群要求
<a name="considerations-limitations"></a>
+ **启用 Amazon EMR 阻止公有访问**：通过对集群进行入站访问，集群用户能够执行 Notebook 内核。确保只有授权用户才能访问集群。我们强烈建议您将阻止公有访问保持启用状态，并将入站 SSH 流量仅限于可靠来源。有关更多信息，请参阅[使用 Amazon EMR 阻止公有访问](emr-block-public-access.md)和[使用 Amazon EMR 集群的安全组控制网络流量](emr-security-groups.md)。
+ **使用兼容的集群**：附加到 Notebook 的集群必须满足以下要求：
  + 仅支持使用 Amazon EMR 创建的集群。您可以在 Amazon EMR 中单独创建集群，然后附加 EMR Notebook，也可以在创建 EMR Notebook 时创建可兼容的集群。
  + 仅支持使用 Amazon EMR 发行版 5.18.0 及更高版本创建的集群。请参阅[集群发行版的功能差异](#considerations-cluster-version)。
  + 不支持使用具有 AMD EPYC 处理器的 Amazon EC2 实例创建的集群（例如 m5a.\$1 和 r5a.\$1 实例类型）。
  + EMR Notebooks 仅适用于在 `VisibleToAllUsers` 设置为 `true` 的情况下创建的集群。默认情况下 `VisibleToAllUsers` 为 `true`。
  + 必须在 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 实例的集群。

## 集群发行版的功能差异
<a name="considerations-cluster-version"></a>

我们强烈建议您将 EMR Notebooks 与使用 Amazon EMR 发行版本 5.30.0、5.32.0 或更高版本或 6.2.0 或更高版本创建的集群一起使用。借助这些版本，EMR Notebooks 在附加的 Amazon EMR 集群上运行内核。内核和库可直接安装到集群主节点上。将 EMR Notebooks 与这些集群版本结合使用具有以下好处：
+ **提高了性能**：Notebook 内核在具有所选 EC2 实例类型的集群上运行。早期版本在无法调整大小、访问或自定义的专用实例上运行内核。
+ **能够添加和自定义内核**：您可以使用 `conda` 和 `pip` 连接到集群来安装内核包。此外，支持在 Notebook 单元中使用终端命令来安装 `pip`。在早期版本中，只有预装的内核可用（Python、 PySpark、Spark 和 SparkR）。有关更多信息，请参阅 [在集群主节点上安装内核和 Python 库](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)。
+ **能够安装 Python 库** - 您可以使用 `conda` 和 `pip` [在集群主节点上安装 Python 库](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)。我们建议使用 `conda`。在早期版本中，仅[支持笔记本电脑范围的库](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations)。 PySpark 


**集群版本支持的 EMR Notebooks 功能**  

| 集群发布版本 | 笔记本级库适用于 PySpark | 集群上的内核安装 | 主节点上的 Python 库安装 | 
| --- | --- | --- | --- | 
|  版本 5.18.0 之前的版本  |  不支持 EMR Notebooks  | 
|  5.18.0–5.25.0  |  否  |  否  |  否  | 
|  5.26.0–5.29.0  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations)  |  否  |  否  | 
|  5.30.0  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations)  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)  | 
|  6.0.0  |  否  |  否  |  否  | 
| 5.32.0 及更高版本，以及 6.2.0 及更高版本 | [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations) | [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel) | [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel) | 

## 并发附加的 EMR Notebooks 的限制
<a name="emr-managed-notebooks-cluster-limits"></a>

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


| 主节点 EC2 实例类型 | EMR Notebooks 数量 | 
| --- | --- | 
|  \$1.medium  |  2  | 
|  \$1.large  |  4  | 
|  \$1.xlarge  |  8  | 
|  \$1.2xlarge  |  16  | 
|  \$1.4xlarge  |  24  | 
|  \$1.8xlarge  |  24  | 
|  \$1.16xlarge  |  24  | 

## Jupyter Notebook 和 Python 版本
<a name="considerations-versions"></a>

EMR Notebooks 运行 [Jupyter Notebook 版本 6.0.2](https://jupyter-notebook.readthedocs.io/en/stable/changelog.html#release-6-0-2) 和 Python 3.6.5，而不管附加的集群的 Amazon EMR 发行版本如何。

## 安全注意事项
<a name="considerations-notebooks-security"></a>

**使用加密的 S3 位置**  
如果在 Amazon S3 中指定一个加密位置来存储 Notebook 文件，则必须将 [EMR Notebooks 的服务角色](emr-managed-notebooks-service-role.md) 设置为密钥用户。默认服务角色为 `EMR_Notebooks_DefaultRole`。如果您使用 AWS KMS 密钥进行加密，请参阅 AWS Key Management Service 开发人员指南[中的在 AWS KMS 中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto)和[添加密钥用户的支持文章](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-access-default-encryption/)。

**在托管域中使用 Cookie**  
为了增强可能与 Amazon EMR 结合使用的非控制台应用程序的安全性，应用程序托管域已在公共后缀列表（PSL）中注册。这些托管域的示例包括以下各项：`emrstudio-prod.us-east-1.amazonaws.com`、`emrnotebooks-prod.us-east-1.amazonaws.com`、`emrappui-prod.us-east-1.amazonaws.com`。为进一步增强安全性，如果您需要在默认域名中设置敏感 Cookie，我们建议您使用带 `__Host-` 前缀的 Cookie。这将有助于保护您的域，防范跨站点请求伪造（CSRF）攻击。有关更多信息，请参阅 *Mozilla 开发者网络*中的 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) 页面。