JupyterHub:一个多用户Jupyter笔记本服务器
项目描述
技术概述 | 安装 | 配置 | Docker | 贡献 | 许可证 | 帮助和资源
JupyterHub
使用JupyterHub,您可以创建一个多用户中心,该中心可以生成、管理和代理多个单用户Jupyter笔记本服务器实例。
Project Jupyter创建JupyterHub以支持多个用户。该中心可以向学生班级、企业数据科学工作组、科学研究项目或高性能计算组提供笔记本服务器。
技术概述
JupyterHub由三个主要参与者组成
- 多用户中心(tornado进程)
- 可配置的http 代理(node-http-proxy)
- 多个单用户Jupyter笔记本服务器(Python/Jupyter/tornado)
基本操作原则是
- 中心启动一个代理。
- 代理默认将所有请求转发到中心。
- 中心处理登录并在需要时生成单用户服务器。
- 中心配置代理将URL前缀转发到单用户笔记本服务器。
JupyterHub还提供了一个REST API,用于管理和操作中心及其用户。
安装
检查先决条件
-
基于Linux/Unix的系统
-
Python 3.8或更高版本
-
-
如果您使用
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笔记本
conda install jupyterlab
conda install notebook
使用pip
JupyterHub可以使用pip
安装,代理可以使用npm
安装
npm install -g configurable-http-proxy
python3 -m pip install jupyterhub
如果您计划在本地运行笔记本服务器,您需要安装JupyterLab或Jupyter笔记本
python3 -m pip install --upgrade jupyterlab
python3 -m pip install --upgrade notebook
运行中心服务器
要启动中心服务器,请运行以下命令
jupyterhub
在浏览器中访问http://localhost:8000
,并使用您的系统用户名和密码登录。
注意:为了让多个用户登录服务器,您需要以特权用户(如root)的身份运行jupyterhub
命令。有关如何以较低权限用户运行服务器(需要更多系统配置)的说明,请参阅wiki。
配置
文档的入门部分解释了设置JupyterHub的常见步骤。
JupyterHub教程提供了JupyterHub的深入视频和示例配置。
创建配置文件
生成具有设置和描述的默认配置文件
jupyterhub --generate-config
启动Hub
在特定URL和端口10.0.1.2:443
上以https
启动Hub
jupyterhub --ip 10.0.1.2 --port 443 --ssl-key my_ssl.key --ssl-cert my_ssl.cert
认证器
认证器 | 描述 |
---|---|
PAM认证器 | 默认,内置认证器 |
OAuth认证器 | OAuth + JupyterHub认证器 = OAuth认证器 |
ldap认证器 | JupyterHub的简单LDAP认证器插件 |
kerberos认证器 | JupyterHub的Kerberos认证器插件 |
启动器
启动器 | 描述 |
---|---|
LocalProcessSpawner | 默认,内置启动器以本地进程启动单用户服务器 |
dockerspawner | 在Docker容器中启动单用户服务器 |
kubespawner | JupyterHub的Kubernetes启动器 |
sudospawner | 不以root身份启动单用户服务器 |
systemdspawner | 使用systemd启动单用户notebook服务器 |
batchspawner | 适用于使用批量调度软件的集群 |
yarnspawner | 在Hadoop集群上分布式启动单用户notebook服务器 |
wrapspawner | WrapSpawner和ProfilesSpawner允许在运行时配置启动器 |
Docker
一个Docker镜像为JupyterHub提供了一个基于Docker的基本部署。
重要:此quay.io/jupyterhub/jupyterhub
镜像仅包含Hub本身,没有配置。通常,需要制作一个衍生镜像,至少包含一个jupyterhub_config.py
设置认证器和/或启动器。要运行单用户服务器,这些服务器可能位于与Hub相同的系统上或不在,必须安装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,但默认设置将不会。Windows上报告的错误将不会被接受,测试套件也不会在Windows上运行。但是,修复一些小的Windows兼容性问题(如基本安装)的补丁可能会被接受。对于基于Windows的系统,我们建议在docker容器或Linux虚拟机上运行JupyterHub。
其他参考资料: Tornado在Windows平台上的支持文档
许可证
我们采用共享版权模式,使所有贡献者都能保留其贡献的版权。
所有代码均在修订版BSD许可证的条款下授权。
帮助和资源
我们鼓励您在Jupyter社区论坛上提问和分享想法。您也可以在我们的JupyterHub Gitter频道与我们交流。
- 问题报告
- JupyterHub教程
- JupyterHub文档
- JupyterHub REST API文档
- Project Jupyter文档
- Project Jupyter网站
- Project Jupyter社区
JupyterHub遵循Jupyter 社区指南。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
jupyterhub-5.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c357a22d18d418453d55b9dc2713388f115e96f5f15cbdb0f3b9191fe164259 |
|
MD5 | e0d4be416614cc791e32bebc8964bfda |
|
BLAKE2b-256 | 21efd32bdf4ed33fe37c16f798894bb789351b0603e9fe204f445d9c7fa93f23 |
jupyterhub-5.2.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3898cc31cabd0bbfe58b0adf14f5f075b761a0d2e1572f7c3f347f3949bed271 |
|
MD5 | a88749839cf8d92ec699ff8b639cab26 |
|
BLAKE2b-256 | a671340cd723b794f4e01222f3272c8bc128f174108184f4cd7b2cde97318449 |