jupyterhub 安装教程

为什么要用jupyterhub

jupyter notebook 是一个非常有用的工具,我们可以在浏览器中任意编辑调试我们的python代码,并且支持markdown 语法,可以说是科研利器。但是这种情况适合个人使用,也就是jupyter notebook以我们自己的主机作为服务器,然后我们用自己的浏览器编辑自己本机的python代码。最近实验室搭建了深度学习的服务器,每个人都有一个用户可以使用GPU资源,但是每次写代码要在本地调试好了然后再ssh提交到服务器运行,如果有问题,还要再在本地更改然后再次提交,非常的麻烦。为了解决这个烦恼,我们在GPU服务器上搭建了jupyterhub, 它和notebook不同之处在于它是一个hub,哈哈,也就是notebook的服务器,把它装在服务器上,然后大家可以通过局域网在浏览器上进行python代码的编辑和调试。

什么是jupyterhub

jupyterhub 和 jupyter notebook一样是python的一个包,可以通过pip安装,也可以通过 conda安装,在服务器端安装就可以供大家使用。关于jupyterhub的教程请看:官方教程 既然有了官方教程了为什么我还要写这篇文章呢?原因是因为:1.在安装过程中遇到了一些在教程中解决不了的问题 2. 避免大家走弯路。

安装jupyterhub

这篇教程在使用jupyterhub的时候是在anaconda的虚拟环境中安装的,如果你的是本机的python环境,不用担心,其原理都是一样的。

依赖:nodejs

这里是第一个坑,在官方教程中,它告诉我们需要提前装依赖项nodejs,

sudo apt-get install npm nodejs-legacy

但是当我通过这种方式安装后,再安装jupyterhub 后发生了错误,找了很久的原因没有找到,后来看错误提示,猜测可能是nodejs的版本问题,也就是说我们通过apt-get 安装的nodejs 版本不符合我们的需要,我们的系统是ubuntu 16.04, 使用的apt 源是阿里云的源。可能其他源或者ubuntu18.04不会出现这种问题吧。如果在安装jupyterhub的时候它提示你nodejs的错误,很有可能是版本呢问题。

解决方案:去官网下载对应的版本
下载最新版应该也是可以的,下载下来是一个压缩包,我们将它解压后放到固定的文件夹,例如

/usr/local/nodejs

接下来将nodejs 的bin目录放到path 路径中,这样在命令行中敲入node就会有提示信息,代表nodejs安装成功了。path 路径的配置随便百度一下就会有很多教程。我把path路径的配置放到了 /etc/bash.bashrc中,你也可以放到~/.bashrc当中。这里不详细讨论环境变量的问题。 nodejs安装成功后我们就可以着手安装jupyterhub了。

安装

根据官方教程,有两种方式安装:

  1. pip 安装
python3 -m pip install jupyterhub
npm install -g configurable-http-proxy
python3 -m pip install notebook  # needed if running the notebook servers locally
  1. conda 安装
conda install -c conda-forge jupyterhub  # installs jupyterhub and proxy
conda install notebook  # needed if running the notebook servers locally

选择其中一种安装即可,我们使用第一种pip安装,因为conda安装总会出现连接超时的问题。

配置jupyterhub

如果上述过程都没有问题,我们就可以在命令行中敲入jupyterhub -h看看是否有帮助提示,有帮助提示代表安装成功,在虚拟环境中安装的需要先进入到虚拟环境中source activate **

接下来需要我们配置jupyterhub了,这个配置过程比较简单,按步骤走就行了

  1. 生成配置文件
jupyterhub --generate-config

这个命令会在你的当前目录下生成一个jupyterhub_config.py文件,接下来我们需要在这个文件中配置我们的网络和用户管理。

  1. 启动jupyterhub
jupyterhub -f /path/to/jupyterhub_config.py

上述命令可以根据你的配置文件启动jupyterhub。

  1. 怎么配置/upyterhub_config.py
    下面给出我们的参考配置:
c.JupyterHub.ip = '192.168.24.***'
c.JupyterHub.port = 445
c.PAMAuthenticator.encoding = 'utf-8'
c.LocalAuthenticator.create_system_users = False
c.Authenticator.whitelist = {'dada',
'haha',
‘name’
}
c.Authenticator.admin_users = {'famu'}
c.Spawner.env_keep.append('LD_LIBRARY_PATH')
c.JupyterHub.statsd_prefix = 'jupyterhub'

JupyterHub.ip是你本机局域网的ip,记得是局域网
JupyterHub.port是我们指定的端口,随便指定一个不和其他服务冲突的端口就行
Authenticator.whitelist 比较重要,这里面需要将linux的用户名添加进入,这样该用户就可以通过浏览器利用linux的用户名和密码登录自己的账户,jupyterhub采用和linux系统相同的认证方式,所以我们不需要另外建立用户,只需要登录linux的用户和密码即可。
c.Spawner.env_keep.append('LD_LIBRARY_PATH')这行是我们踩的坑,因为用了GPU版的tensorflow,这个目的是将LD_LIBRARY_PATH的路径放到jupyterhub中,这样才能正确使用GPU版的tensorflow。

  1. 最后登录使用

在同一个局域网的电脑中,打开浏览器输入刚才配置的ip和端口,然后输入登录linux的用户名和密码即可登录使用。

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值