JupyterHub

一、什么是JupyerHub

        JupyerHub是一个多用户的JupyerNotebook管理器。默认情况下,JupyerNotebook是不支持多用户使用的。而JupyterHub刚好弥补了这一缺点。

        在Docker中,JupyterHub通过身份验证,然后,通过一个叫Spawn的机制为每一个通过验证的用户生成一个新的Docker容器,这样就可以多用户使用JupyterNotebook了。

        JupyerHub还支持文件夹共享,这个对于多用户协作来说是刚需,而这是普JupyerNotebook做不到的。

        综上所述支持多用户的 Jupyter Notebook 服务器,用于创建、管理、代理多个 Jupyter Notebook 实例。具有扩展性和可定制性。

二、JupyterHub 三组件 

  1. 一个多用户的 Hub
  2. 一个可配置的 http代理

  3. 多个单用户JupyterNotebook服务器

JupyterNotebook and JupyterLab
       JupyterHub是管理Notebook / JupyterLab的工具,在了解JupyterHub之前,我们有必要去了解一下Notebook 和 JupyterLab的功能。

Jupyter Notebook 简介
        Jupyter Notebook是一个开源Web应用程序,允许您创建和共享包含实时代码,方程式,可视化效果和叙述文本的文档。

        用途包括:数据清理和转换,数值模拟,统计建模,数据可视化,机器学习等。

JupyterLab 简介
        JupyterLab是用于Jupyter notebooks,代码和数据的基于Web的交互式开发环境JupyterLab非常灵活,配置和安排用户界面以支持数据科学,科学计算和机器学习中的各种工作流程。

       JupyterLab是可扩展且模块化的:编写可添加新组件并与现有组件集成的插件。
 

三、搭建JupyerHub 

安装

python3 -m pip install jupyterhub
npm install -g configurable-http-proxy
# needed if running the notebook servers in the same environment
python3 -m pip install jupyterlab notebook  

# conda(一个命令安装 jupyterhub 和代理):

conda install -c conda-forge jupyterhub  # installs jupyterhub and proxy
conda install jupyterlab notebook 

更新 pip 版本

python3 -m pip install --upgrade pip
安装 npm 和 nodejs

apt-get update
sudo apt-get install npm
sudo npm install n -g
sudo n lts
# 安装最新长期支持版 node

安装 Jupyter Notebook

pip install notebook
安装 JupyterLab

pip install jupyterlab
 

安装 JupyterHub

sudo npm install -g configurable-http-proxy

sudo python3 -m pip install jupyterhub

测试安装 

jupyterhub -h
configurable-http-proxy -h

启动 Hub 服务器

jupyterhub

浏览器中访问http://localhost:8000,并使用您的 Unix 凭据登录。

要允许多个用户登录Hub 服务器,您必须 jupyterhub以特权用户身份启动,

例如 root:

sudo jupyterhub

环境配置JupyterHub 官方环境配置

# 设置3-2
# ------------------------------------------------------------------------------
 
# configurable_http_proxy 代理设置
#允许hub启动代理 可以不写,默认为False   启动configurable-http-proxy
c.ConfigurableHTTPProxy.should_start = True 
# proxy与hub与代理通讯 
c.ConfigurableHTTPProxy.api_url = 'http://localhost:8001' 
 
# 对外登录设置的ip
c.JupyterHub.ip = '192.168.99.2'
c.JupyterHub.port = 8001
c.PAMAuthenticator.encoding = 'utf8'
 
# 用户名单设置,默认身份验证方式PAM与NUIX系统用户管理层一致,root用户可以添加用户等,
 
# c.Authenticator.allowed_users = {'test1', 'test2'}
c.Authenticator.admin_users = {'root'}  # 管理员用户
c.DummyAuthenticator.password = "xs301302"  # 初始密码设置
# 管理员有权在各自计算机上以其他用户身份登录,以进行调试
c.JupyterHub.admin_access = True 
# 此选项通常用于 JupyterHub 的托管部署,以避免在启动服务之前手动创建所有用户
c.LocalAuthenticator.create_system_users=True  
 
# 设置每个用户的 book类型和工作目录(创建.ipynb文件自动保存的地方)
c.Spawner.notebook_dir = '~'
c.Spawner.default_url = '/lab'
c.Spawner.args = ['--allow-root'] 
 
# 为jupyterhub 添加额外服务,用于处理闲置用户进程。
# 使用时不好使安装一下:pip install jupyterhub-ilde-culler
c.JupyterHub.services = [
    {
        'name': 'idle-culler',
        'command': ['python3', '-m', 'jupyterhub_idle_culler', '--timeout=3600'],
        'admin':True 
    # 1.5.0 需要服务管理员权限,去kill 部分闲置的进程notebook, 2.0版本已经改了,
    # 可以只赋给 idel-culler 部分特定权限,roles
    }
]

进入管理员用户和创建新用户

 jupyterhub -f jupyterhub_config.py 启动。

启动有问题,读官方安装和配置文档重新配置或安装。

 四、参考

  1. Docker中部署JupyterNotebook/JupyterHub
  2. Jupyter Notebook介绍、安装及使用教程
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

**星光*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值