JupyterHub 配置和管理 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

JupyterHub 配置和管理

JupyterHub 相关组件在运行 Ubuntu 操作系统的名为 jupyterhub Docker 容器中运行。有多种方法可用于管理此容器内运行的组件。

警告

在此容器内执行的自定义将在此容器重启后不复存在。建议为容器配置编写脚本或以其它方式实现容器配置的自动化,以便可以更轻松地重现自定义。

使用命令行管理

使用连接到主节点时SSH,您可以使用 Docker 命令行接口 (CLI) 发出命令,并通过名称 (jupyterhub) 或 ID 指定容器。例如,sudo docker exec jupyterhub command 将运行容器内运行的操作系统或应用程序识别的命令。可以使用此方法将用户添加到操作系统和在 Docker 容器内安装其它应用程序和库。例如,默认容器映像包括用于安装软件包的 Conda,因此可能在主节点命令行上运行以下命令以在容器内安装应用程序 Keras:

sudo docker exec jupyterhub conda install keras

通过提交步骤管理

步骤是将工作提交到集群的一种方式。可以在启动集群时提交步骤,也可以将步骤提交给正在运行的集群。可以使用 command-runner.jar 将在命令行上运行的命令作为步骤提交。有关更多信息,请参阅Amazon EMR 管理指南》中的使用CLI和控制台处理步骤在 Amazon EMR 集群上运行命令和脚本

例如,您可以在本地计算机上使用以下 Amazon CLI 命令来安装 Keras,方法与在前面的示例中通过主节点的命令行所做的方式相同:

aws emr add-steps --cluster-id MyClusterID --steps Name="Command Runner",Jar="command-runner.jar",Args="/usr/bin/sudo","/usr/bin/docker","exec","jupyterhub","conda","install","keras"

此外,可以为步骤的序列编写脚本,并将脚本上载到 Amazon S3,然后在创建集群或将脚本作为步骤添加时使用 script-runner.jar 运行脚本。有关更多信息,请参阅在 Amazon EMR 集群上运行命令和脚本。有关示例,请参阅示例:用于添加多个用户的清除脚本

使用 “管理” REST APIs

Jupyter JupyterHub、,以及可用于发送RESTAPIs请求的 JupyterHub 提供的HTTP代理。要向发送请求 JupyterHub,您必须在请求中传递API令牌。您可以使用主节点curl命令行中的命令来执行REST命令。有关更多信息,请参阅以下资源:

以下示例演示如何使用 for 获取用户列表。REST API JupyterHub 该命令传递先前生成的管理员令牌,并使用默认端口 9443,将输出通过管道传输到 jq 以便于查看: JupyterHub

curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $admin_token" | jq .