搭建基于 Anaconda 管理的多用户 JupyterHub 平台

搭建基于 Anaconda 管理的多用户 JupyterHub 平台


情况:计算工作站放在实验室,多个同学需要接入使用,且需要各自独立的环境,并使用 Jupyter notebook 平台以方便协作。


步骤

1. 安装 Anaconda

由于是多人环境,应调用 root 权限在安装过程中指定安装到 /opt/anaconda/ 路径下,这样所有用户均可读,但无法直接在 base 环境下安装模块。

为了让每个用户都能访问到 conda,需要逐个在用户的 .bashrc 文件中加入 export PATH='/opt/anaconda:$PATH'

2. 安装 JupyterHub

JupyterHub 是 Jupyter notebook 的多用户版本,每个用户可以通过自己的系统用户名和密码登录到个人独立的 Jupyter notebook 中,这样不同人的代码和数据都保存于其自己的用户目录下,同时用户的资源消耗和管理也更清晰简单,非常适合单机多用户的需求。

在 Anaconda 的 base 环境下安装 JupyterHub,注意 base 环境只有 root 可写。

(base)$ sudo conda install JupyterHub

在 base 环境下启用 JupyterHub 时亦需要通过 root,否则将会启用单用户模式,导致其他用户无法登陆。

(base)$ sudo jupyterhub

3. 安装 JupyterHub 调用 Anaconda 环境依赖

通过 conda create 创建的环境并不会默认显示在 JupyterHub 的 kernel 选项中,需要安装依赖。

(base)$ sudo conda install nb_conda_kernels

4. 用户使用

  1. 每个用户开始使用时,需要先建立自己的个人环境,注意由于是建立个人环境,因此该环境会写入 ~/.conda下,故不再需要 root 权限,且每个用户都可以随意安装需要的 python 模块
$ conda create --name crew

2. 建立好后,进入个人环境并安装 JupyterHub kernel

(base)$ source activate crew # 激活个人环境,注意下一行环境标识符发生变化
(crew)$ conda install ipykernel

3. 安装所需的模块,这样模块会被安装到用户的个人环境下,不会对 base 环境或其他用户的环境造成影响,且一个用户可以创建多个相互独立的环境

(crew)$ pip install numpy # or use conda install numpy

4. 访问 JupyterHub,此时可以在页面中选择所创建的个人环境的 kernel


实际尝试

  • 由于可能每个同学都需要使用 tensorflow 或 keras 等深度学习模块,因此我在 base 环境中预先安装好了这些模块,这样在进行深度学习时不需要费劲地重新安装模块。
  • 如果同学需要安装自己的模块,则可以直接从 base 环境新建一个个人环境,个人环境会继承 base 环境已有的模块
$ conda create -n crew
  • 如果同学不需要继承 base 环境,而是想新建一个空白的新环境,也可以用 conda 做到
$ conda create -n crew python=3.6
posted on 2019-12-03 16:35  adolfmc  阅读(3154)  评论(0编辑  收藏  举报