Littlest JupyterHub| 01 Littlest JupyterHub 阿里云搭建

筅森魡賤 提交于 2020-11-19 12:03:29

Littlest JupyterHub(TLJH)是JupyterHub的一个简化发行版,用于单个服务器上用户数在0-100人的科学计算环境管理,使用者无需自行配置计算环境,直接打开浏览器就可以完成脚本的编写、运行任务,实现跨平台、全tian'hou的编程方式。TLJH目前仍处于测试阶段,但已经取得了巨大的成功。

如果用户数大于100人,则推荐使用 JupyterHub with Kubernetes 

安装前须知

  • 需要熟悉命令行指令操作
  • 一个运行Ubuntu18.04的服务器(我用的是ali云的学生优惠机,包年114元)
  • 服务器上至少有1.15GB的RAM
  • 能够ssh进入服务器运行命令
  • 可以从浏览器访问服务器的IP地址

安装 Littlest JupyterHub

  • 首先通过ssh方式登录服务器,我是直接通过阿里云的在线ssh进行登录的,也可以在本地下载PuTTY进行登录,参考Putty远程登录云ECS教程, 可以看到此时已经登录上服务器了:

  • 继续安装一些必要的工具和程序,如curl,git等
sudo apt-get install python3 python3-dev git curl
  • 然后就可以开始安装TLJH了,命令如下:
curl -L https://tljh.jupyter.org/bootstrap.py | sudo -E python3 - --admin <admin-user-name>

这个地方要将<admin user name>替换为此JupyterHub的第一个管理员用户的名称,可以自己指定名称,如root(别忘了去掉括号),这个管理员用户可以在设置JupyterHub之后登录,并可以根据需要配置它。

  • 按Enter键开始安装过程,大概需要5-10分钟,由于周知的原因,在执行上面一条命令时可能会出错,如果多次重复还是不能通过的话,可以输入:
 sudo curl https://raw.githubusercontent.com/kkj154393476/the-littlest-jupyterhub/89e2fd66f0fea8a3d5e6f3a6d660abde3dac2450/bootstrap/bootstrap.py | sudo -E python3 - --admin <admin-user-name>

    这个脚本中我把需要拉取的GitHub项目fork到的Gitee上,以及把pip源换成了清华源,因此在下载速度上会快很多。项目地址:https://gitee.com/jiangroubao/the-littlest-jupyterhub,pip源教程:pypi 镜像使用帮助

当输出done!时,说明安装完成,此时可以直接通过IP访问到JupyterHub服务器了!

  • 输入刚刚设定的用户名(root),第一次登录时输入的密码会作为以后的密码,可以自己随意设置,点击登录,就可以进入到Jupyter界面了

添加更多用户

  • 单击JupyterHub右上角的control panel按钮打开控制面板

  • 然后再点击admin按钮进入用户管理界面

  • 点击Add Users按钮,每一行表示一个用户的用户名,输入完成后点击Add Users按钮,即完成用户名的设置

    要注意的是默认的验证方式是 FirstUseAuthenticator 的方式,JupyterHub中有很多种验证方式,会在后面的文章中介绍

为用户安装各种Python库

用户环境是由JupyterHub中的所有用户共享的conda环,所有用户都可以立即使用此环境中安装的库,管理员用户可以使用 sudo-E 在这个环境中安装包

  • 首先以管理员身份登录Jupyter,然后点击New-> Terminal,打开一个bash终端

  • 若使用conda安装,如安装gdal,输入:
sudo -E conda install -c conda-forge gdal
  • 若使用pip安装,如安装numpy,输入:
sudo -E pip install there

    gdal和numpy包现在可供JupyterHub中的所有用户使用,如果用户已经有一个python笔记本在运行,那么他们必须重新启动笔记本的内核,以使新的库可用。

使用https

如果有域名的话,可以启用HTTPS进行访问,但我没有买域名,所以没做这一步,但还是附上链接:https://tljh.jupyter.org/en/latest/howto/admin/https.html#howto-admin-https

 

下一节打算记录一些Jupyter Hub的文件数据共享方法:)

 

    安装过程中的Bug

    • hw云

    因为一开始先买了hw云的9.9包月套餐,后来发现华为套餐上只能按照arm架构的Ubuntu,而minicoda对arm的支持不好,所以放弃在hw云上部署

    • ali云端口

    在安装完成之后要记得从安全组中放行JupyterHub的入端口,不然会被拒绝访问,设置方法:https://help.aliyun.com/document_detail/25471.html

    • 拉取GitHub库速度慢

    将GitHub镜像到Gitee上,教程:https://gitee.com/help/articles/4284

    参考链接:

    TLJH项目地址:https://tljh.jupyter.org/en/latest/install/custom-server.html

    apt源:https://encoderlee.blog.csdn.net/article/details/89346473

    基于arm架构的miniconda:https://github.com/Archiconda/build-tools/releases

    易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
    该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!