技术概述|安装|配置|码头工人|贡献|许可证|帮助和资源
使用 JupyterHub,您可以创建一个多用户集线器,用于生成、管理和代理单用户 Jupyter 笔记本服务器的多个实例。
Jupyter 项目创建了 JupyterHub 来支持许多用户。该中心可以为学生班级、企业数据科学工作组、科学研究项目或高性能计算小组提供笔记本服务器。
JupyterHub 的三个主要参与者:
操作的基本原则是:
JupyterHub 还提供 REST API 用于管理 Hub 及其用户。
基于 Linux/Unix 的系统
Python 3.8 或更高版本
节点js/npm
如果您使用conda
,conda 将为您安装 nodejs 和 npm 依赖项。
如果您使用pip
,请安装最新版本(至少 12.0)的 nodejs/npm。
如果使用默认的 PAM 身份验证器,则为可插入身份验证模块 (PAM)。
用于 HTTPS 通信的 TLS 证书和密钥
域名
conda
要安装 JupyterHub 及其依赖项(包括 nodejs/npm):
conda install -c conda-forge jupyterhub
如果您计划在本地运行笔记本服务器,请安装 JupyterLab 或 Jupyter Notebook:
conda install jupyterlab
conda install notebook
pip
JupyterHub 可以使用pip
安装,代理使用npm
:
npm install -g configurable-http-proxy
python3 -m pip install jupyterhub
如果您计划在本地运行笔记本服务器,则需要安装 JupyterLab 或 Jupyter Notebook:
python3 -m pip install --upgrade jupyterlab
python3 -m pip install --upgrade notebook
要启动 Hub 服务器,请运行以下命令:
jupyterhub
在浏览器中访问http://localhost:8000
,并使用您的系统用户名和密码登录。
注意:要允许多个用户登录服务器,您需要以特权用户(例如 root)身份运行jupyterhub
命令。 wiki 描述了如何以权限较低的用户身份运行服务器,这需要对系统进行更多配置。
文档的入门部分解释了设置 JupyterHub 的常见步骤。
JupyterHub 教程提供了 JupyterHub 的深入视频和示例配置。
要生成包含设置和描述的默认配置文件:
jupyterhub --generate-config
要使用https在特定 url 和端口10.0.1.2:443
上启动集线器:
jupyterhub --ip 10.0.1.2 --port 443 --ssl-key my_ssl.key --ssl-cert my_ssl.cert
验证器 | 描述 |
---|---|
PAM验证器 | 默认内置身份验证器 |
O认证器 | OAuth + JupyterHub 身份验证器 = OAuthenticator |
LDAP验证器 | 适用于 JupyterHub 的简单 LDAP 身份验证器插件 |
kerber身份验证器 | JupyterHub 的 Kerberos 身份验证器插件 |
产卵者 | 描述 |
---|---|
本地进程生成器 | 默认情况下,内置生成器将单用户服务器作为本地进程启动 |
码头工人 | 在 Docker 容器中生成单用户服务器 |
库贝斯普纳 | JupyterHub 的 Kubernetes 生成器 |
须多斯普纳 | 无需 root 即可生成单用户服务器 |
系统生成器 | 使用 systemd 生成单用户笔记本服务器 |
批量生成器 | 专为使用批量调度软件的集群而设计 |
纱线产卵者 | 生成分布在 Hadoop 集群上的单用户笔记本服务器 |
包裹产卵者 | WrapSpawner 和 ProfilesSpawner 支持生成器的运行时配置 |
JupyterHub 的入门 docker 映像提供了使用 Docker 进行 JupyterHub 的基线部署。
重要提示:此quay.io/jupyterhub/jupyterhub
映像仅包含 Hub 本身,没有任何配置。一般来说,需要制作一个衍生镜像,至少有一个jupyterhub_config.py
设置 Authenticator 和/或 Spawner。要运行单用户服务器(可能与集线器位于同一系统上或不同系统上),必须安装 Jupyter Notebook 版本 4 或更高版本。
JupyterHub docker 镜像可以使用以下命令启动:
docker run -p 8000:8000 -d --name jupyterhub quay.io/jupyterhub/jupyterhub jupyterhub
此命令将创建一个名为jupyterhub
的容器,您可以使用docker stop/start
停止和恢复该容器。
Hub 服务将侦听端口 8000 上的所有接口,这使其成为在台式机或笔记本电脑上测试 JupyterHub 的不错选择。
如果您想在具有公共 IP 的计算机上运行 docker,那么您应该(如必须)通过向 docker 配置添加 ssl 选项或使用启用 ssl 的代理来使用ssl 保护它。
安装卷将允许您将数据存储在 docker 映像(主机系统)之外,因此即使您启动新映像,数据也将是持久的。
命令docker exec -it jupyterhub bash
将在 docker 容器中生成一个 root shell。您可以使用 root shell 在容器中创建系统用户。这些帐户将用于 JupyterHub 默认配置中的身份验证。
如果您想为该项目做出贡献,请阅读我们的贡献者文档和CONTRIBUTING.md
。 CONTRIBUTING.md
文件解释了如何设置开发安装、如何运行测试套件以及如何编写文档。
有关项目愿景和下一步方向的高级视图,请参阅 JupyterHub 社区路线图。
JupyterHub 在基于 Linux/Unix 的系统上受支持。
JupyterHub 官方不支持 Windows。如果您使用可在 Windows 上运行的 Spawner 和 Authenticator,则您也许可以在 Windows 上使用 JupyterHub,但 JupyterHub 默认设置不会。在 Windows 上报告的错误将不被接受,并且测试套件不会在 Windows 上运行。但是,可以接受修复较小的 Windows 兼容性问题(例如基本安装)的小补丁。对于基于 Windows 的系统,我们建议在 Docker 容器或 Linux VM 中运行 JupyterHub。
其他参考:Tornado 有关 Windows 平台支持的文档
我们使用共享版权模型,使所有贡献者都能维护其贡献的版权。
所有代码均根据修订后的 BSD 许可证条款获得许可。
我们鼓励您在 Jupyter 社区论坛上提出问题并分享想法。您还可以在我们的 JupyterHub Gitter 频道上与我们交谈。
JupyterHub 遵循 Jupyter 社区指南。
技术概述|安装|配置|码头工人|贡献|许可证|帮助和资源