管理员配置Jupterhub

  1. 在Ubuntu上演示如何部署R语言环境,包括

    1. posit的已经编译了一些R的安装

    2. 系统已经装了R,我额外编译的R如何让大家都能用到

    3. 如何配置RStudio

  2. jupyterhub的配置和使用

    1. 管理员如何配置jupyterhub

    2. 用户如何配置自己的jupyter环境

Ubuntu上的R部署

这一次,我们以从posit上下载预编译的R: https://docs.posit.co/resources/install-r/[1]

比如说Ubuntu 20.04的安装方法如下

sudo apt-get update
sudo apt-get install gdebi-coreexport R_VERSION=4.3.1
curl -O https://cdn.rstudio.com/r/ubuntu-2004/pkgs/r-${R_VERSION}_1_amd64.deb
sudo gdebi r-${R_VERSION}_1_amd64.deb#验证
/opt/R/${R_VERSION}/bin/R --version

但是此时安装的R并不能使用,因为他不在环境变量PATH中,为了让所有人能够使用,也为了方便切换版本,我们通过软连接的方式,将安装的R链接到/usr/local/bin

export R_VERSION=4.3.1sudo ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
sudo ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript

接下来配置RStudio server, 还是Ubuntu为例。

wget https://download2.rstudio.org/server/focal/amd64/rstudio-server-2023.06.1-524-amd64.deb
sudo gdebi rstudio-server-2023.06.1-524-amd64.deb

由于将R放在了/usr/local/bin下,因此RStudio server可以直接访问到这个R,也就不需要修改配置文件/etc/rstudio/rserver.conf

当然环境配置到此还不够,我们下一步还需要安装很多R包,为了简化这一过程,我将我自己常用的R包汇总到了一个文件中,见https://github.com/xuzhougeng/server-management-for-bioinformatics/blob/main/scripts/common-r-package.r[2]

你需要在服务器下载我的common-r-package.r或者新建一个文件,粘贴上述内容,即可。然后运行如下命令

export R_VERSION=4.3.1sudo /opt/R/${R_VERSION}/bin/Rscript common-r-package.r

这样子服务器就会运行这个安装脚本。

如果是普通用户,那就是去掉这个sudo,会安装到自己的家目录下

export R_VERSION=4.3.1/opt/R/${R_VERSION}/bin/Rscript common-r-package.r

JupyterHub

管理员配置Jupterhub

目标是在服务器上配置一个JupyterHub,支持多个用户登录使用。建议在Ubuntu 20.04以上哦

以root权限配置全局的JupyterHub作为入口

首先,我们安装python3和python

sudo apt install python3 python3-pip

然后,需要手动安装npm

wget https://nodejs.org/dist/v18.17.0/node-v18.17.0-linux-x64.tar.xz
tar xf node-v18.17.0-linux-x64.tar.xz
sudo mkdir -p /opt/node
sudo mv node-v18.17.0-linux-x64 /opt/node/18.17.0sudo ln -s /opt/node/18.17.0/bin/* /usr/local/bin

安装configurable-http-proxy

sudo npm install -g  configurable-http-proxy --registry=http://registry.npmmirror.com 
sudo ln -s /opt/node/18.17.0/bin/configurable-http-proxy /usr/local/bin

最后配置jupyterhub

# 安装jupyterhub
sudo python3 -m pip install jupyterhub  -i https://pypi.mirrors.ustc.edu.cn/simple/

 

hub是一个中心,具体需要调用jupterlab和notebook,因此建议安装

# 安装jupter lab 和 notebook
sudo python3 -m pip install notebook  -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo python3 -m pip install jupyterlab  -i https://pypi.mirrors.ustc.edu.cn/simple/

测试下安装状态

jupyterhub -h
configurable-http-proxy -h

Jupyterhub的启动有两种

1、基于命令行参数

sudo jupyterhub --ip 0.0.0.0 --port 8989

2、基于配置文件

第一步,生成配置文件

jupyterhub --generate-config

第二步,修改配置文件,主要就是ip和端口

# 设置访问方式
c.JupyterHub.bind_url = 'http://0.0.0.0:8989'

第三步,启动

sudo jupyterhub -f  jupyterhub_config.py

为了方便使用,我们还需要将jupyterhub变成系统服务

第一步,编辑文件

sudo vim /etc/systemd/system/jupyterhub.service

内容如下

[Unit]
Description=Jupyterhub service
After=syslog.target network.target[Service]
ExecStart=/usr/local/bin/jupyterhub -f /etc/jupyterhub/config.py[Install]
WantedBy=multi-user.target

还需要复制之前的配置文件

sudo mkdir -p /etc/jupyterhub
sudo cp  jupyterhub_config.py /etc/jupyterhub/config.py

第三步,启动服务

sudo systemctl daemon-reload# 启动服务
sudo service jupyterhub start# 看状态
sudo systemctl status jupyterhub.service

参考:https://github.com/jupyterhub/jupyterhub[3]

用户管理自己的Jupyter

我们需要掌握的一个知识点:jupyterhub会去$HOME/.local/share/jupyter/kernels 查找记录的kernels。

因此,在任何 Python[4] 环境,无论是系统级、用户级、venv[5] 还是 Conda[6] 环境,我们都可以通过ipykernel手动添加到 Jupyter[7] 的 Kernels 列表。以conda为例(关于conda,一定要去阅读我的https://github.com/xuzhougeng/server-management-for-bioinformatics/blob/main/conda-for-software-management.md[8])

以conda为例,我们可以为conda默认环境添加

pip install ipykernel -i https://pypi.mirrors.ustc.edu.cn/simple/
python -m ipykernel install --user --name="base" --display-name="base"
# Installed kernelspec base in /home/用户名/.local/share/jupyter/kernels/base

也可以新建一个python3.10的环境

conda create -n python3.10 python=3.10 ipython ipykernel

为其增加kernel

python -m ipykernel install --user --name="python310" --display-name="Python 3.10"
# Installed kernelspec python310 in /home/用户名/.local/share/jupyter/kernels/python310

之后,我们就可以在服务器看到这些内容(我配置了不少内容,包括R,还有一个单细胞课程用到的palantir)

Image

如果你需要安装特定的python酷库,一种是在jupyter的notebook中选择好kernel,然后执行下面的命令

import sys
sys.executable
# 下面必须在jupyter中运行,例如palantir
!{sys.executable} -m pip install  palantir

当然,我更推荐推荐启动对应conda环境, 安装你的库。

conda activate python310
pip install palantir

插件

创建一般指的就是jupyterlab的插件,因为notebook就是一个book而已。

jupyterhub的插件功能通过pip的方式进行安装,例如python补全功能(注意pip得是对应的环境下的pip,在notebook中的pip可能是全局pip)

pip install -U jupyterlab-lsp  -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install -U "python-lsp-server[all]"  -i https://pypi.mirrors.ustc.edu.cn/simple/

部分拓展需要用nodejs (≥18),因此需要额外安装你一个node。

git clone https://gitee.com/mirrors/nvm.git
cd nvm
# 启动nvm
. ./nvm.sh
# 安装node=18
nvm install 18

安装的node要添加到环境变量PATH中

目前的语言模型比较火热,jupyterhub上有一个对应的插件,叫做jupyterhub AI。他的安装也非常的简便。

首先启动,我的一个环境

conda activate python3.10

安装插件

pip install jupyter_ai

然后打开jupyterhub

%load_ext jupyter_ai_magics

案例

%%ai chatgpt
Please generate the Python code to solve the 2D Laplace equation in cartesian coordinates.
Solve the equation on the square domain X=(0,1) and y=(0,1) with vanishing boundary conditions.
Plot the solutionu using Matplotlib.
Please also provide ean explanation.

此时会报错

Image

原因,还没有给token,你需要一个OPENAI官方的token

%env OPENAI_API_KEY = OPENAI官方的token

但是依旧可能出现问题,因为服务器没有穿越能力

Image

这个时候,你可以考虑使用代理线路(进行从另一个地方转发请求,如果担心被盗用,这个连接也提供了自建的方案)

%env OPENAI_API_BASE = https://api.openai-proxy.com/v1

感谢:https://www.openai-proxy.com/[9]

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

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

相关文章

Mendix UI页面布局以案说法

一、前言 试着回想最近一次与公司网站交互的情况,访问了多个页面,并且可能使用了某些功能。有可能基于这种互动,可以向某人介绍公司的一些主要功能。其中一些可能是更肤浅的东西,比如他们的标志是什么样子或他们的主要配色方案是…

笔记二十四、剖析Redux的工作流程

24.1 定义 用做于状态管理的第三方 js 库react框架中使用,也可应用于其他的框架 使用场景 组件间需要共享状态和改变另一个组件的状态在react项目中可以不使用就尽量不用,复杂场景下才使用 24.2 原理图 24.3 代码 安装 yarn add reduxjs/toolkit rea…

GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭

效果: 开关控制灯的亮灭 目录 1.找到引脚组别(DEFG) led灯硬件结构 开关硬件结构 2.时钟使能 3.GPIO时钟控制 4.控制实现思路 5. 完整代码 6.视频演示 1.找到引脚组别(DEFG) 开关的引脚组别--E;LED灯的引脚组别--F led灯硬件结构 开关硬件结构…

【linux】基本指令(上篇)

1.快速认识5~6个指令 pwd指令 ls指令 touch指令 cd指令 clear指令 touch指令 详细讲解 首先有一个问题就是当我们创建一个文件,但是没有往里面写内容,那么磁盘上会有该文件吗? 磁盘上会保存,因为创建好的文件,没有…

IDEA安装python插件并配置

目录 一、Mac1. 安装插件2. 新建项目3. 下载第三方库4. 配置镜像源 一、Mac 1. 安装插件 在plugins中搜索python 2. 新建项目 使用本项目独享的虚拟环境,选择解释器 如果需要修改解释器可以进入project structure,在SDKs中点击,选择add py…

clip-path,css裁剪函数

https://www.cnblogs.com/dzyany/p/13985939.html clip-path - CSS:层叠样式表 | MDN 我们看下这个例子 polygon里有四个值分别代表这四个点相对于原图左上方的偏移量。 裁剪个五角星

解决vue3项目打包发布到服务器后访问页面显示空白问题

1.在 vite.config.ts 文件中 加入 base:./ 当你将 base 设置为 / 时,它表示你的应用程序将部署在服务器的根路径上,(将 base 设置为 / 表示你的应用程序部署在服务器的根路径上,并且 Vite 会相应地处理资源和路由的路径…

【UE】制作一块布

效果 步骤 1. 新建一个空白模板工程,新建一个Basic关卡 2. 选项模式选择“建模” 3. 创建一个矩形 宽度、深度设为500,宽度细分和深度细分设置为100,然后点击接受 此时在浏览器中编辑器也帮我们创建了一个矩形的静态网格体,这里…

Peter算法小课堂—差分与前缀和

差分 Codeforces802 D2C C代码详解 差分_哔哩哔哩_bilibili 一维差分 差分与前缀和可以说成减法和加法的关系、除法和乘法的关系、积分和微分的关系(听不懂吧) 给定数组A,S为A的前缀和数组,则A为S的差分数组 差分数组构造 现…

TCP/IP_整理起因

先分享一个初级的问题;有个客户现场,终端设备使用客户网络更新很慢,使用手机热点更新速度符合预期;网络部署情况如下: 前期花费了很大的精力进行问题排查对比,怀疑是客户网络问题(其他的客户现…

微信开发者工具真机调试连接状态在正常和未连接之间反复横跳

开启局域网模式能解决这个问题,目前只找到这一个方法

Ubuntu安装HP LaserJet P3010系列打印机驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装驱动二、其它设置总结 前言 最近在研究Ubuntu Desktop版,无意间看到了打印机选项,就好奇去试了试。居然配置成功了&#xff0c…

单片机实验(三)

前言 实验一:利用定时器T1的中断控制P1.7引脚输出音频信号,启动蜂鸣器发出一段熟悉的与众不同的具有10个音节的音乐音频。 实验二:使用定时器/计数器来实现一个LCD显示年、月、日、星期 、时、分、秒的电子表,要求时和分可以方便…

负电源电压转换-TP7660H

负电源电压转换-TP7660H 简介引脚说明典型应用电路倍压与反压的应用电路 简介 TP7660H 是一款 DC/DC 电荷泵电压反转器专用集成电路。芯片能将输入范围为 2.5V~11V 的电压转换成相应的-2.5V~-11V 的输出,电压转换精度可达99.9%,电…

女子曝被医生男友下药流产,男子被警方行拘10日,医院停职!

近日,一则关于女子被医生男友暗中下堕胎药导致流产的消息引起了广泛关注。经过一个多月的报案和调查,如今有了新的进展。 11月30日,王女士向华商报大风新闻记者证实,北京中关村某医院涉事医生已被行政拘留,被处以行政拘…

RabbitMQ学习一

RabbitMQ学习 RabbitMQ相关概念Virtual host数据隔离SpringAMQP第一种 基本消息模型第二种 WorkQueues模型第三种 发布订阅模型(fanout交换机)fanout交换机实例 第四种 Direct交换机direct交换机实例基于注解的方式声明——direct交换机 第五种Topic交换…

Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式

一、Builder设计模式 WebSecurity、HttpSecurity、AuthenticationManagerBuilder 都是框架中的构建者,把他们放到一起看看他们的共同特点: 查看AuthenticationManagerBuilder的继承结构图: 查看HttpSecurity的继承结构图: 查看W…

记录 | onnx-simplifier安装、使用

安装: pip install onnx-simplifier# 若想加速 # [可选] 使用豆瓣源加速 pip install -i https://pypi.douban.com/simple onnx-simplifier# [可选] 使用阿里源加速 pip install -i http://mirrors.aliyun.com/pypi/simple onnx-simplifier使用: pytho…

vue开发中遇到的问题记录

文章目录 前言1、css 即时使用了scoped子组件依然会生效2、路由配置如果出现重复name,只会生效最后一个,且前端的路由无效3、组件之间事件传递回调需要先定义emits: [],不然会警告提示4、动态配置数据中引入了组件为参数,出现警告…

Android 断点调试

Android 调试 https://developer.android.google.cn/studio/debug?hlzh-cn 调试自己写的代码(不在Android源码) 点击 Attach debugger to Android process 图标 需要在添加断点界面手动输入函数名 但也可以不手动,有个技巧可以new 空proje…