

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

# 在 Amazon S3 中配置 Notebook 的持久性
<a name="emr-jupyterhub-s3"></a>

您可以在 Amazon EMR 中配置 JupyterHub 集群，以便用户保存的笔记本保留在 Amazon S3 中，而不是集群 EC2 实例上的临时存储空间。

在创建集群时使用 `jupyter-s3-conf` 配置分类指定 Amazon S3 持久性。有关更多信息，请参阅[配置应用程序](emr-configure-apps.md)。

除了使用 `s3.persistence.enabled` 属性启用 Amazon S3 持久性之外，还请使用 `s3.persistence.bucket` 属性在保存 Notebook 的 Amazon S3 中指定存储桶。每个用户的 Notebook 将保存到指定存储桶中的 `jupyter/jupyterhub-user-name` 文件夹。该存储桶必须已存在于 Amazon S3 中，并且您在创建集群时指定的 EC2 实例配置文件的角色必须对此存储桶具有权限（默认情况下，此角色为 `EMR_EC2_DefaultRole`）。有关更多信息，请参阅[配置 IAM 角色以获得 Amazon EMR 服务的权限。 AWS](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles.html)

当您使用相同的配置分类属性启动新集群时，用户可以打开内容来自已保存位置的 Notebook。

请注意，当您启用了 Amazon S3 后，如果将文件作为模块导入到 Notebook 中，这会导致文件上载到 Amazon S3。当您在不启用 Amazon S3 持久性的情况下导入文件时，它们会上传到您的 JupyterHub 容器中。

以下示例启用 Amazon S3 持久性。用户保存的 Notebook 保存在每个用户的 `s3://MyJupyterBackups/jupyter/jupyterhub-user-name` 文件夹中，其中 `jupyterhub-user-name` 是一个用户名（如 `diego`）。

```
[
    {
        "Classification": "jupyter-s3-conf",
        "Properties": {
            "s3.persistence.enabled": "true",
            "s3.persistence.bucket": "MyJupyterBackups"
        }
    }
]
```