Linux:Jupyterhub多用户远程登录安装、使用经验

1、安装

首先,打开官网帮助文档:

JupyterHub 官方安装帮助文档

一般安装都是参考官方最新版安装文档。

1.1环境条件

本次安装 JupyterHub的软件环境:

  • 基于 Linux Centos系统;
  • Python 3.9或更高版本;
  • 安装 nodejs/npm ;

安装 nodejs/npm:

如果使用conda:conda 将为您安装 nodejs 和 npm 依赖项。

如果您正在使用pip,请安装最新版本的 nodejs/npm。

例如,使用以下命令在 Linux 上安装:

sudo apt-get install nodejs npm

也可以yum安装

sudo yum install npm nodejs

安装完成后, 通过 node -v 和 npm -v 来查看是否安装成功。

1.2安装

JupyterHub安装可以用pip命令(和代理npm)或conda命令:

pip命令:npm:

python3 -m pip install jupyterhub
npm install -g configurable-http-proxy
python3 -m pip install jupyterlab notebook

conda命令:

conda install -c conda-forge jupyterhub
conda install jupyterlab notebook

安装完成后执行 jupyterhub --version 来查看是否安装成功。


1.3配置

按照官方配置文档一步一步配置即可:

JupyterHub 官方环境配置帮助

首先通过jupyterhub --generate-config命令生成配置文件jupyterhub_config.py,下面的配置参数都是写在jupyterhub_config.py文件中的:

import sys
# configurable_http_proxy 代理设置
c.ConfigurableHTTPProxy.should_start = True #允许hub启动代理 可以不写,默认的,为False 就需要自己去 启动configurable-http-proxy
c.ConfigurableHTTPProxy.api_url = 'http://127.0.0.1:8001' # proxy与hub与代理通讯,这应该是默认值不行也行
 
# 对外登录设置的ip
c.JupyterHub.ip = '0.0.0.0'
c.JupyterHub.port = 8000
c.PAMAuthenticator.encoding = 'utf8'
 
# 用户名单设置,默认身份验证方式PAM与NUIX系统用户管理层一致,root用户可以添加用户test1,test2等等,非root用户,sudo useradd test1/test2 不起作用,目前我不知道sudo useradd 和 root下 useradd本质区别*(没有特意学过linux,一切只靠用时百度)
# c.Authenticator.allowed_users = {'test1', 'test2'}
c.Authenticator.admin_users = {'jupyterhub'}  # 管理员用户
c.DummyAuthenticator.password = "123456"  # 初始密码设置
c.JupyterHub.admin_access = True  # 则管理员有权在各自计算机上以其他用户身份登录,以进行调试
c.LocalAuthenticator.create_system_users=True  # 此选项通常用于 JupyterHub 的托管部署,以避免在启动服务之前手动创建所有用户

c.JupyterHub.authenticator_class = 'jupyterhub.auth.PAMAuthenticator' #解决Centos下用户认证问题


# 设置每个用户的 book类型 和 工作目录(创建.ipynb文件自动保存的地方)
c.Spawner.notebook_dir = '~'
c.Spawner.default_url = '/lab'
c.Spawner.args = ['--allow-root'] 
c.Spawner.cmd ='jupyter-labhub'


# 为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
    }
]

1.4启动

1.4.1添加环境变量

将jupyterhub所在的目录加入系统环境变量。添加方法是:在/etc/profile.d/目录下新建jupyterhub.sh文件并写入下面两行代码

export JUPYTERHUB_HOME=/usr/local/bin
export PATH=$JUPYTERHUB_HOME:$PATH

然后执行

source /etc/profile.d/jupyterhub.sh

这样可以防止报错 Error in Authenticator.pre_spawn_start: FileNotFoundError [Errno 2] No such file or directory: 'jupyterhub-singleuser': 'jupyterhub-singleuser'

1.4.2使用root权限启动

先切换到root用户, 再启动jupyterhub, 否则会出现权限不足和有些用户无法登录的情况。

1.4.3添加用户

root将用户‘jupyterhub’添加到系统:

useradd jupyterhub
passwd jupyterhub

根据提示输入密码‘123456’即可!

1.4.4启动命令

在系统中输入

jupyterhub -f jupyterhub_config.py

即可启动。

后台运行启动命令:

nohup jupyterhub -f jupyterhub_config.py >nohup.out & 

查看启动的进程:

ps -aux | grep jupyterhub

2、使用

2.1用户登录

访问安装http://ip:8000/hub/login

登录完成后的页面:

2.2用户管理

选择:文件->HUB控制面板,点击即可:

点击:Admin 

 即可对用户进行管理,包括用户新建、编辑、删除,不过用户的密码不能在此进行操作,还需要参考1.4.3中进行操作!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/61766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效利用隧道代理实现无阻塞数据采集

在当今信息时代,大量的有价值数据分散于各个网站和平台。然而,许多网站对爬虫程序进行限制或封禁,使得传统方式下的数据采集变得困难重重。本文将向您介绍如何通过使用隧道代理来解决这一问题,并帮助您成为一名高效、顺畅的数据采…

工厂人员作业行为动作识别检测算法

工厂人员作业行为动作识别检测算法通过yolov7python深度学习算法框架模型,工厂人员作业行为动作识别检测算法实时识别并分析现场人员操作动作行为是否符合SOP安全规范流程作业标准,如果不符合则立即抓拍告警提醒。Python是一种由Guido van Rossum开发的通…

BMC相关知识

简介 BMC(Baseboard Management Controller),基板管理控制器,普通PC没有,服务器产品必备。BMC是一个独立的系统,只要通电即可运行,服务器无需开机,不依赖其它软硬件,如O…

webrtc 的Bundle group 和RTCP-MUX

1,最近调试程序的时候发现抱一个错误 max-bundle configured but session description has no BUNDLE group 最后发现是一个参数设置错误 config.bundle_policy webrtc::PeerConnectionInterface::BundlePolicy::kBundlePolicyMaxBundle; 2,rtcp-mu…

Linux之Shell(一)

Linux之Shell Shell概述Linux提供的Shell解析器bash和sh的关系Centos默认的解析器是bash Shell脚本入门脚本格式第一个脚本脚本常用的执行方式 变量系统预定义变量自定义变量特殊变量$n$#\$*、\$$? 运算符条件判断流程控制(▲)if判断case语句for循环while循环 read读取控制台输…

并发容器11

一 JDK 提供的并发容器总结 JDK 提供的这些容器大部分在 java.util.concurrent 包中。 ConcurrentHashMap: 线程安全的 HashMap CopyOnWriteArrayList: 线程安全的 List,在读多写少的场合性能非常好,远远好于 Vector. ConcurrentLinkedQueue: 高效的并…

设计模式入门笔记

1 设计模式简介 在IT这个行业,技术日新月异,可能你今年刚弄懂一个编程框架,明年它就不流行了。 然而即使在易变的IT世界也有很多几乎不变的知识,他们晦涩而重要,默默的将程序员划分为卓越与平庸两类。比如说&#xff…

unity 之参数类型之引用类型

文章目录 引用类型引用类型与值类型的差异 引用类型 在Unity中,引用类型是指那些在内存中存储对象引用的数据类型。以下是在Unity中常见的引用类型的介绍: 节点(GameObject): 在Unity中,游戏对象&#xff…

无重叠区间【贪心算法】

无重叠区间 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 class Solution {public int eraseOverlapIntervals(int[][] intervals) {//先排序,按照左边界升序,注…

【爬虫】实验项目一:文本反爬网站的分析和爬取

目录 一、实验目的 二、实验预习提示 ​编辑 三、实验内容 四、实验要求 五、实验过程 1. 基本要求: 2. 改进要求A 3. 改进要求B: 六、资料 1.实验框架代码: 2.OpenSSL:Win32/Win64 OpenSSL Installer for Windows - Shining Light…

Node与Express后端架构:高性能的Web应用服务

在现代Web应用开发中,后端架构的性能和可扩展性至关重要。Node.js作为一个基于事件驱动、非阻塞I/O的平台,以及Express作为一个流行的Node.js框架,共同构建了高性能的Web应用服务。 在本文中,我们将深入探讨Node与Express后端架构…

污水厂数字孪生 | 3D可视化管理系统助力污水企业数字化管理

随着城市化进程的不断加快,污水处理成为了城市环境保护的重要组成部分。传统的污水处理方式往往存在诸多问题,如信息不对称、安全隐患等。为了解决这些问题,污水处理3D可视化管控平台应运而生,它通过结合数字孪生技术和远程指导技…

【行为树】py_trees 学习笔记

学习资料 《Introduction to behavior trees》 1. 概念说明 1.1 Action:pt.behaviour.Behaviour 在一个行为树中,Action 是一个叶节点(Leaf Node),它实际执行某种行为或任务,并返回成功、失败或运行中的…

Unity关键概念

Unity是一款跨平台的游戏引擎和开发工具,用于创建2D和3D游戏、交互式内容和应用程序。它提供了一个强大的开发环境,使开发者能够轻松地设计、开发和部署高质量的游戏和应用程序。 以下是Unity的几个关键概念: 游戏对象(Game Obj…

SpringBoot整合Freemaker结合Vue实现页面填写一键自动生成Redis的配置文件

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Sp…

管理类联考——逻辑——形式逻辑——汇总篇——知识点突破——假言——各种假言

角度 多重假言 (1)如果A,那么B,除非C。 符号化为:┐C→ (A→B)。 等价于:┐C→ (┐A∨B)。 等价于:C∨(┐A∨B)。 等价于:C∨┐A∨B。 等价于:┐(C∨┐A)→…

035 - datetime和timedstamp

该DATETIME类型用于包含日期和时间部分的值。MySQL检索并DATETIME以格式显示 值 。支持的范围是 到。 YYYY-MM-DD hh:mm:ss1000-01-01 00:00:009999-12-31 23:59:59 该TIMESTAMP数据类型被用于同时包含日期和时间部分的值。 UTCTIMESTAMP的范围是UTC。 1970-01-01 00:00:01203…

素数之谜揭秘:一文详解试除法判断素数

这是我非常喜欢的一道编程题目。不要小看这道题,它看似简单,实则奥妙无穷。由于这是C语言的入门篇,只介绍最简单,也最容易想到的方法:试除法。但哪怕是试除法,也有不少变化。 要想了解试除法,首…

软件测试人需要掌握的测试知识架构体系(上)

软件计划与可行性研究(问题定义、可行性研究);需求分析;软件设计(概要设计、详细设计);编码;软件测试;运行与维护。 一、软件的生命周期(SDLC) 1、生存周期划分 各阶段…

软件测试/测试开发丨Selenium 高级定位 Xpath

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27036 一、xpath 基本概念 XPATH是一门在XML文档中查找信息的语言 XPATH使用路径表达式在XML文档中进行导航 XPATH的应用非常广泛,可以用于UI自…