Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用笔记本

创建 EMR 笔记本后,在很短的时间内便可启动该笔记本。Notebooks (笔记本) 列表中的 Status (状态) 列表会显示 Starting (正在启动)。笔记本的状态为 Ready (就绪) 时,便可将其打开。如果您随笔记本一同创建了集群,则笔记本变为 Ready (就绪) 状态可能需要较长的时间。

提示

刷新浏览器或选择笔记本列表上方的刷新图标来刷新笔记本状态。

了解笔记本状态

EMR 笔记本在 Notebooks (笔记本) 列表中可具有以下 Status (状态)

状态 意义

Ready

您可以使用笔记本编辑器打开笔记本。笔记本的状态为 Ready (就绪) 时,您可以将其停止或删除。要更改集群,您必须先停止笔记本。如果处于 Ready (就绪) 状态的笔记本长时间空闲,它将自动停止。

正在启动

正在创建笔记本并将其附加到集群。笔记本处于“Starting (正在启动)”状态时,您无法打开笔记本编辑器,也无法停止、删除它或更改集群。

Pending

已创建笔记本,正在等待与待完成的集集群成。集群可能仍在预配置资源,也可能在响应其他请求。您可以在本地模式中使用笔记本打开笔记本编辑器。依赖于集群过程的任何代码均不会执行和失败。

正在停止

正在关闭笔记本或正在终止该笔记本附加到的集群。笔记本处于“Stopping (正在停止)”状态时,您无法打开笔记本编辑器,也无法停止、删除它或更改集群。

已停止

笔记本已关闭。只要集群仍在运行,您就可以在同一个集群上启动笔记本。您可以更改集群,也可以删除该集群。

删除

正在从可用集群列表中删除该集群。笔记本文件 NotebookName.ipynb 会保留在 Amazon S3 中,并继续产生适用的存储费用。

使用笔记本编辑器

使用 EMR 笔记本的一项优势是,您可以直接从控制台启动 Jupyter Notebook 编辑器。

对于 EMR 笔记本,从 Amazon EMR 控制台访问的笔记本编辑器就是您熟悉的开源 Jupyter Notebook 编辑器。由于笔记本编辑器是在 Amazon EMR 控制台内启动的,与使用 Amazon EMR 集群上托管的笔记相比,配置访问权限更高效。您无需将用户客户端配置为通过 SSH、安全组规则以及代理配置进行 Web 访问。如果用户具有足够的权限,他们只需在 Amazon EMR 控制台内打开笔记本编辑器即可。

一次只能有一个用户从 Amazon EMR 中打开 EMR 笔记本。如果其他用户尝试打开已打开的 EMR 笔记本,则会发生错误。

重要

Amazon EMR 为每个笔记本编辑器会话创建一个唯一的预签名 URL,该 URL 仅在短时间内有效。我们建议您不要共享笔记本编辑器 URL。这样做会产生安全风险,因为 URL 的收件人会采用您的权限来编辑笔记本并在 URL 的生命周期内运行笔记本代码。如果其他人需要访问笔记本,请通过权限策略向其 IAM 用户提供权限。有关更多信息,请参阅EMR Notebooks 安全性和访问控制

为 EMR 笔记本打开笔记本编辑器

  1. Notebooks (笔记本) 列表中选择一个 Status (状态)Ready (就绪)Pending (等待中) 的笔记本。

  2. 选择 Open

    Jupyter Notebook 编辑器将在一个新的浏览器选项卡中打开。

  3. Kernel (内核) 菜单中,选择 Change kernel (选择内核),然后选择与您的编程语言相对应的内核。

    现在,您已准备就绪,可以从笔记本编辑器编写和运行代码了。

保存笔记本内容

在笔记本编辑器中执行操作时,笔记本单元内容和输出在 Amazon S3 中会自动定期保存到笔记本文件中。自上次编辑单元以来未进行任何更改的笔记本在编辑器的笔记本名称旁会显示 (autosaved) ([自动保存])。如果更改尚未保存,系统将显示 unsaved changes (未保存的更改)

您可以手动保存笔记本。从 File (文件) 菜单中,选择 Save and Checkpoint (保存并设置检查点) 或按 CTRL+S。这会在 Amazon S3 的笔记本文件夹的 checkpoints (检查点) 文件夹中创建一个名为 NotebookName.ipynb 的文件。例如:s3://MyBucket/MyNotebookFolder/NotebookID/checkpoints/NotebookName.ipynb。该位置只保存最新的检查点文件。

更改集群

您可以更改已附加 EMR 笔记本的集群,无需更改笔记本本身的内容。您可以只针对状态为 Stopped (已停止) 的笔记本更改集群。

更改 EMR 笔记本的集群

  1. 如果要更改的笔记本正在运行中,请从 Notebooks (笔记本) 列表中选择该笔记本,然后选择 Stop (停止)

  2. 如果笔记本状态为 Stopped (已停止),请从 Notebooks (笔记本) 列表中选择该笔记本,然后选择 View details (查看详细信息)

  3. 选择 Change cluster (更改集群)

  4. 如果您有一个正在运行 Hadoop、Spark 和 Livy 且要向其附加笔记本的活动集群,保留其默认设置,然后从列表中选择一个集群。列表中只列出符合要求的集群。

    — 或 —

    选择 Create a cluster (创建集群),然后选择集群选项。有关更多信息,请参阅创建笔记本时创建集群

  5. Security groups (安全组) 选择一个选项,然后选择 Change cluster and start notebook (更改集群并启动笔记本)

删除笔记本和笔记本文件

使用 Amazon EMR 控制台删除 EMR 笔记本时,您将从可用笔记本列表中删除该笔记本。但是,笔记本文件会保留在 Amazon S3 中,并继续产生存储费用。

删除笔记本并删除关联文件

  1. 打开 https://console.amazonaws.cn/elasticmapreduce/ 中的 Amazon EMR 控制台。

  2. 选择 Notebooks (笔记本),从列表中选择您的笔记本,然后选择 View details (查看详细信息)

  3. 选择 Notebook location (笔记本位置) 旁边的文件夹图标,然后复制格式为 s3://MyNotebookLocationPath/NotebookID/URL

  4. 选择 Delete

    系统将从列表中删除该笔记本,您无法再查看笔记本详细信息。

  5. 按照 Amazon Simple Storage Service 控制台用户指南中我如何从 S3 存储桶中删除文件夹的说明执行操作。从步骤 3导航到存储桶和文件夹。

    — 或 —

    如果您已安装 AWS CLI,请打开命令提示符窗口并键入此段落末尾处的命令。将 Amazon S3 位置替换为您在上面复制的位置。务必使用有权删除该 Amazon S3 位置的用户的访问密钥配置 AWS CLI。有关更多信息,请参阅 AWS Command Line Interface 用户指南中的配置 AWS CLI

    aws s3 rm s3://MyNotebookLocationPath/NotebookID

共享笔记本文件

每个 EMR 笔记本都会作为一个名为 NotebookName.ipynb 的文件保存在 Amazon S3 中。只要笔记本文件与 EMR 笔记本 所基于的同一 Jupyter Notebook 版本兼容,您就可以将该笔记本作为 EMR 笔记本进行打开。您可以将 EMR 笔记本文件替换为相同名称的不同笔记本文件。

您可以通过此过程使用其他人共享的 EMR 笔记本、Jupyter 社区中共享的笔记本,或还原从控制台删除的笔记本(如果您仍具有该笔记本文件)。

将不同的笔记本文件用作 EMR 笔记本的基础

  1. 继续操作之前,针对要使用的所有笔记本关闭笔记本编辑器,然后停止笔记本(如果是 EMR 笔记本)。

  2. 创建一个 EMR 笔记本并为其输入一个名称。您为该笔记本输入的名称将是您需要替换的文件的名称。新文件名称必须与此文件名称完全匹配。

  3. 记下您为该笔记本选择的 Amazon S3 位置。您替换的文件位于路径和文件名采用以下格式的文件夹中:s3://MyNotebookLocation/NotebookID/MyNotebookName.ipynb.

  4. 停止笔记本。

  5. 使用完全相同的名称将 Amazon S3 位置中的旧笔记本替换为新的笔记本。

    Amazon S3 的以下 AWS CLI 命令会将 EMR 笔记本保存在本地计算机上名为 SharedNotebook.ipynb 的文件替换为使用 Amazon S3 中指定的 MyBucket/MyNotebooksFolder 创建的且名称为 MyNotebook、ID 为 e-12A3BCDEFJHIJKLMNO45PQRST 的文件。有关使用 Amazon S3 控制台复制和替换文件的更多信息,请参阅 Amazon Simple Storage Service 控制台用户指南中的上传、下载和管理对象

    aws s3 cp SharedNotebook.ipynb s3://MyBucket/MyNotebooksFolder/-12A3BCDEFJHIJKLMNO45PQRST/MyNotebook.ipynb