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

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

JupyterHub 配置和管理

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

警告

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

使用命令行管理

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

sudo docker exec jupyterhub conda install keras

通过提交步骤管理

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

例如,可以在本地计算机上使用以下 AWS 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 运行脚本。有关更多信息,请参阅在集群中运行脚本。有关示例,请参阅示例:用于添加多个用户的Bash脚本

使用REST管理 APIs

Jupyter, JupyterHub、和的HTTP代理 JupyterHub 提供REST APIs 可用于发送请求。发送请求至 JupyterHub,您必须通过请求传递API令牌。可以从主节点命令行使用 curl 命令执行 REST 命令。有关更多信息,请参阅以下资源:

以下示例演示了如何将RESTAPI用于 JupyterHub 获取用户列表。命令传递以前生成的管理员令牌,并使用默认端口9443用于 JupyterHub,将输出连接到 以便于查看:

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