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,一经查实,立即删除!

相关文章

CMake rv1109交叉编译环境搭建

安装vmware虚拟机 准备安装包VMware-workstation-full-15.5.1-15018445.exe 下载地址安装 参考资料 在vmware上安装Linux环境 准备安装包ubuntu-18.04.4-desktop-amd64.iso 下载地址安装 参考资料 安装rv1109交叉编译工具链 准备安装包rv1109_toolchain_release.tar.bz2 下…

【深度学习】实验05 构造神经网络示例

文章目录 构造神经网络1. 导入相关库2. 定义一个层3. 构造数据集4. 定义基本模型5. 变量初始化6. 开始训练 构造神经网络 注明:该代码用来训练一个神经网络,网络拟合y x^2-0.5noise,该神经网络的结构是输入层为一个神经元,隐藏层…

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

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

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

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

【React】React学习:从初级到高级(一)

React学习[一] 1 UI描述1.1 组件的创建与使用1.1.1 创建组件1.1.2 使用组件 1.2 组件的导入与导出1.2.1 根组件文件1.2.2 导出和导入一个组件1.2.3 从同一文件中导出和导入多个组件 1.3 使用JSX书写标签语言1.3.1 JSX:将标签引入JavaScript1.3.2 将HTML转换为JSX1.3.3 高级提示…

Python进阶(1)

Python进阶(1) 文章目录 Python进阶(1)一:发送请求(GET/POST)1.1、方式一:http.client,以https方式为例1.1.1、GET1.1.2、POST 1.2、方式二:requests&#xf…

音视频 ffplay命令播放媒体

播放本地文件 ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4 ffplay buweishui.mp3播放网络流 ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc强制解码器 mpeg4解码器:ffplay -vco…

Mac安装Dart时,Homebrew报错 Error: Failure while executing

前言: 最近准备开发Flutter项目时,在安装环境时,安装Homebew时遇到了以下报错信息,在这里分享一下。 报错信息: ~ % brew tap dart-lang/dart > Tapping dart-lang/dart Cloning into /opt/homebrew/Library/Tap…

Java-集合框架-List,Set,Map,队列

文章目录 Java集合框架:List,Set,Map,队列Java集合框架是什么?如何使用?ListSetMap队列 什么场景使用?优缺点是什么?ListSetMap队列 Java示例List示例Set示例Map示例队列示例 对比 J…

BMC相关知识

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

Unity音频基础概念

一、音源与音频侦听器 游戏画面能够被观众看到,是因为有渲染器和摄像机,同样音频能够被听到,也要有声音的发出者与声音的接收者。声音的发出者叫做音源,接收者叫做音频侦听器。Audio Source与Audio Listener都是组件,…

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读取控制台输…

macos安装zsh

https://www.cnblogs.com/xuLessReigns/p/11005435.html mac下安装autojump brew install autojump 1,安装zsh,执行 sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 2,将zsh设置…

并发容器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后端架构…