安装 JupyterHub 踩坑指南

  • JupyterHub 简介
    • Jupyter Notebook and JupyterLab
    • Jupyter Notebook 简介
    • JupyterLab 简介
  • 安装 JupyterHub
  • 启动 JupyterHub
  • 配置 jupyterhub_config.py 小结
    • 在原有基础上配置HTTPS服务
    • 配置GitHub登入
    • 更新 ing
  • 关于作者

实验环境
Ubuntu / Debian
Python3.5+

JupyterHub 简介


JupyterHub是为多个用户提供Jupyter notebook / Jupyterlab的最佳方法。它可以用于一类学生,公司数据科学小组或科学研究小组。它是一个多用户集线器,可以生成,管理和代理单用户Jupyter notebook / Jupyterlab服务器的多个实例。

tips:JupyterHub是为多个用户提供 notebook / jupyterlab 的最佳方法,所以请确保notebook和jupyterhub是否安装成功。

Jupyter Notebook and JupyterLab

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

Jupyter Notebook 简介

Jupyter Notebook是一个开源Web应用程序,允许您创建和共享包含实时代码,方程式,可视化效果和叙述文本的文档。用途包括:数据清理和转换,数值模拟,统计建模,数据可视化,机器学习等。

JupyterLab 简介

JupyterLab是用于Jupyter notebooks,代码和数据的基于Web的交互式开发环境。JupyterLab非常灵活:配置和安排用户界面以支持数据科学,科学计算和机器学习中的各种工作流程。JupyterLab是可扩展的且模块化的:编写可添加新组件并与现有组件集成的插件。

Jupyter Notebook / JupyterLab 作为功能服务,JupyterHub则帮助多个用户使用这个功能服务

安装 JupyterHub

更新 pip 版本

python3 -m pip install --upgrade pip

安装 npm 和 nodejs

apt-get update
# 更新
sudo apt-get install npm
# 安装npm
sudo npm install n -g
# 安装n模块
sudo n lts
# 安装最新长期支持版 node。不要低于版本12

安装 Jupyter Notebook

pip install notebook

安装 JupyterLab

pip install jupyterlab

tips:根据自己的要求安装对应的功能服务 (jupyter notebook / jupyterlab)

安装 JupyterHub

sudo npm install -g configurable-http-proxysudo python3 -m pip install jupyterhub

启动 JupyterHub

检查 /etc/hosts 文件内是否有关于 hostname 的域名解析

vi /etc/hosts127.0.0.1   【HOSTNAME】
# 将【HOSTNAME】替换为对应的值

生成 jupyterhub_config.py

jupyterhub --generate-config -f 【PATH】
# 将【PATH】替换为对应的文件位置。若不指定PATH,则默认为当前文件夹

配置 jupyterhub_config.py

#c.Spawner.default_url = '/lab'
# /lab对应jupyterlab 默认为notebook
c.JupyterHub.port = 80
# 指定暴露端口
c.PAMAuthenticator.encoding = 'utf8'
c.Authenticator.whitelist = {'root','admin', 'jupyter', 'aiker'}
# 指定可使用用户
c.LocalAuthenticator.create_system_users = True
c.Authenticator.admin_users = {'root', 'admin'}
# 指定admin用户
c.JupyterHub.statsd_prefix = 'jupyterhub'
c.Spawner.notebook_dir = '/volume1/study/'
#jupyterhub自定义目录
c.Spawner.cmd=['jupyterhub-singleuser']

默认情况下,要真正的实现分配用户账号,需要满足以下两点要求:

  1. c.Authenticator.whitelist 指定了用户名
  2. 在系统中创建了该用户(adduser / useradd)

tips: 默认情况下,密码为系统中该用户对应的密码

在存放jupyterhub_config.py的文件夹下执行jupyterhub启动服务

配置 jupyterhub_config.py 小结

在原有基础上配置HTTPS服务

c.JupyterHub.port = 443
# 更换端口为443c.JupyterHub.ssl_cert = '【对应的 fullchain.pem 位置】'
c.JupyterHub.ssl_key = '【对应的 privkey.pem 位置】'

重新启动即可实现 https 的配置

配置GitHub登入

官方文档
1. 首先,需要创建一个GitHub OAuth应用程序
创建GitHub OAuth应用程序

2. 配置jupyterhub_config.py
根据创建OAuth应用时的信息,添加以下配置信息即可

from oauthenticator.github import GitHubOAuthenticator
c.JupyterHub.authenticator_class = GitHubOAuthenticator
import os
os.environ['GITHUB_CLIENT_ID'] = '【对应的CLIENT ID值】'
os.environ['GITHUB_CLIENT_SECRET'] = '【对应的CLIENT SECRET值】'
os.environ['OAUTH_CALLBACK_URL'] = 'http://【URL PATH】/hub/oauth_callback'

更新 ing

关于作者

联系方式 MTI5MDAxNzU1NkBxcS5jb20=

你也可以通过 github | csdn | @新浪微博 关注我的动态

欢迎评论关注+点赞啊!

安装 JupyterHub 踩坑指南 —— 如何通过 JupyterHub 实现多用户管理相关推荐

  1. helm3安装mysql_Helm3(kubernetes包管理工具)安装使用踩坑指南

    image.png 从结构中我们看到有不同级别的文件夹,以及一些yaml文件. charts: 用于存放其他依赖和关联的chart.例如应用依赖数据库的chart. Chart.yaml:存储一些元数 ...

  2. Flutter安装和踩坑指南(windows)

    Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被越来越多的开发者和组织使用,并且 ...

  3. TX2 配置jupyterhub踩坑记录

    TX2 配置jupyterhub踩坑记录 问题描述: 参考教程1和教程2进行安装,报错提示如下(应该是连不上本地http://127.0.0.1:8001/api/routes).但使用lsof -i ...

  4. openssl开发库安装时的踩坑指南

    序 前几天用linux编译一个提权脚本的时候报错 openssl/opensslv.h: 没有那个文件或目录 的问题 无论如何也解决不了,这下我记录一个踩坑指南防止下一个人掉进坑里 操作 总体介绍 首 ...

  5. pytorch .item_从数据到模型,你可能需要1篇详实的pytorch踩坑指南

    原创 · 作者 | Giant 学校 | 浙江大学 研究方向 | 对话系统.text2sql 熟悉DL的朋友应该知道Tensorflow.Pytorch.Caffe这些成熟的框架,它们让广大AI爱好者 ...

  6. Git Commit Message校验踩坑指南

    背景 在团队多人开发中,规范的commit message可以快速定位代码提交历史,回溯问题根源,方便组内多人协作,提高团队效率. 本篇文章主要包含以下两方面内容: commitizen/cz-cli ...

  7. 阿里云天池【Docker练习场】踩坑指南

    阿里云天池[Docker练习场]踩坑指南 题目直达 提交环境搭建(基于macOS) Docker的安装与基本功能使用 Docker安装过程遇到的小问题 提交结果注意事项 提交时的镜像配置 项目结构规范 ...

  8. android手机屏幕共享神器踩坑指南

    开源项目地址:https://github.com/Genymobile/scrcpy scrcpy,由 Genymobile 推出的可跨平台的.可自定义码率的.开源的屏幕共享工具.它提供了在 USB ...

  9. Android applink 踩坑指南

    Android applink 踩坑指南 原理 接入步骤 将链接与activity关联起来 加入meta data 生成身份验证JSON 真机测试 结论 官方文档 原理 与url scheme不同的地 ...

最新文章

  1. 常用windows命令
  2. 解释性的语言vs编译性语言
  3. numpy.divide详解
  4. 八种 WebSocket 框架的性能比较
  5. 趣链 BitXHub跨链平台 (7)应用链插件
  6. 文件上传漏洞——upload-labs(11-20)
  7. Boost:额外的bimap的测试程序
  8. Java System类console()方法及示例
  9. 新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  10. Java练习 SDUT-3338_计算各种图形的周长(接口与多态)
  11. 20145206《Java程序设计》实验五Java网络编程及安全
  12. CS 客户端不引用AE
  13. C++ String16与const char*及char*与vector相互转换
  14. python基础学习笔记3
  15. Android ViewModel组件详解
  16. Zabbix安装记录
  17. 【codevs4093】 EZ的间谍网络 强连通分量+tarjan缩点
  18. 英语六级常考核心词汇01
  19. IP Camera 基础知识
  20. 阜阳市计算机学校助学金申请书,计算机专业学生助学金申请书范文

热门文章

  1. Pr-PEI 蛋白质-聚乙烯亚胺/Glu-PEI 葡萄糖-聚乙烯亚胺/E1105-PEI 溶菌酶-聚乙烯亚胺
  2. 2016苹果产品发布会重点整理
  3. Navicat数据库复制的两种方式
  4. 正向代理、反向代理以及透明代理与隐私保护
  5. 简便高效的视频转换:四种免费MP4格式转换器推荐
  6. 微前端框架chunchao(春潮)开源啦
  7. 如何为Microsoft Office安装和使用加载项
  8. (一)Activiti 数据库25张表——运行实例表15(ACT_RU_TASK)
  9. java tlab_「原创」JVM系列05|TLAB上分配
  10. 反弹shell的N种姿势