ubuntu系统中jupyterhub安装R内核集成rstudio

2023-11-20

需求 :

最后公司需要将原来用的Jupyter单用户版本改成Jupyterhub多用户版本,方便公司统一管理用户,并且因为平时工作会用到python和R的IDE,正好Jupyterhub可以满足需求,网上搜了很多,基本是三种方式,一种是通过k8s部署安装(官方建议的,但太多坑,太难),一种是直接docker pull jupyterhub/jupyterhub配置启动,但是它是单用户的只能做为测试用,一种是在本地进行pip/conda安装(我用的是最后一种,不同的是,我将环境都装在了容器里)。

建议用户数量不超过50人

我是单机部署在docker容器中的,并打包成镜像,最终大小9.03G

首先准备环境:

1.我的服务器为centos (我电脑是windows系统,通过xshell连接公司服务器)

2.服务器上需要有docker(没有请自行安装)

第一步:

sudo docker pull ubuntu 下载一个ubuntu镜像,装在容器里以免破环我们服务器的环境

sudo docker run -p 8081:8000 -itd --name test_jupyterhub ubuntu /bin/bash 启动ubuntu镜像(会生成容器)

sudo docker ps 查看刚启动的容器 名为test_jupyterhub的,找到id号

进入容器中
第二步:

开始准备安装:

ubuntu自带apt-get安装源 因为后期安装R内核需要用到conda所以我们安装conda源及依赖nodejs

apt-get update 

apt-get upgrade

apt-get install sudo

apt-get install nodejs(nodejs -v如果没装成功请执行以下命令)

sudo apt-get update

sudo apt-get install curl 

curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh

sudo bash nodesource_setup.sh

sudo apt-get install nodejs

nodejs -v 就会有版本信息出来

npm -v

安装conda , jupyterhub

这里我使用清华的镜像站点下载,速度很nice,50-60MB/s(conda有2和3版本,自行选择,我用的是3)

wgethttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh

bash Anaconda3-5.2.0-Linux-x86_64.sh

根据提示安装即可,安装过程中会询问你是否将anaconda的路径加入到环境变量.bashrc中,默认是no,所以如果在安装的过程中手太快,一键到底了的话,可以通过手动添加的方式进行设置

sudo apt-get install vim

vim ~/.bashrc

在最后一行添加exportPATH="/root/anaconda3/bin:$PATH"

保存退出 source~/.bashrc
检测Anaconda是否安装成功:

conda list

(用conda安装的Jupyterhub需要给root 777权限,不然后面Jupyterhub启动不了)

condainstall -c conda-forge jupyterhub 或者 用 pip也行

pip3 install jupyterhub notebook -ihttps://pypi.douban.com/simple/

检查是否安装成功

jupyterhub -h

npm install -g configurable-http-proxy

configurable-http-proxy -h

然后生成配置文件 在/etc/jupyterhub目录下有个config文件

jupyterhub --generate-config-f/etc/jupyterhub/jupyterhub_config.py

修改配置

c.JupyterHub.ip ='0.0.0.0'

c.JupyterHub.port =8000(docker run的时候有个端口8000就是此暴露端口)

c.Spawner.ip ='127.0.0.1'

c.PAMAuthenticator.encoding ='utf8'

c.Authenticator.whitelist = {'admin'}

c.LocalAuthenticator.create_system_users =True

c.Authenticator.admin_users = {'admin'}

c.JupyterHub.authenticator_class='dummyauthenticator.DummyAuthenticator'

c.JupyterHub.statsd_prefix ='jupyterhub'

c.Spawner.notebook_dir ='/home/spawner/'

c.JupyterHub.statsd_prefix ='jupyterhub'

如果是root用户 需要修改源码 具体操作见下方链接

用户认证

pip3 install jupyterhub-dummyauthenticator -ihttps://pypi.douban.com/simple/ 

然后,如果遇到生成token问题,在配置文件中修改此配置:

c.JupyterHub.authenticator_class ='dummyauthenticator.DummyAuthenticator'

虽然我们设置了用户,但是并没有密码,所以要在系统设置密码

useradd admin

passwd admin 输入两次密码即可登陆

启动jupyterhub

jupyterhub -f /etc/jupyterhub/jupyterhub_config.py

ctrl+c退出jupyterhub接下来安装R与Rstudio

安装R之前需要先将/root/anaconda/bin/python 随便改个名字然后把python3通过软链接
ln -s /root/anaconda/bin/python3 /root/anaconda/bin/python
因为jupyterhub是依赖python3的 默会找到Python2而且会对它进行升级,会出现BUG报错 No module name conda.cli

conda install -c r r-irkernel

安装rstudio请参照官网(安装到最后要选择区域,尽量选Asia亚州离中国近的)

接下来安装jupyter-rsession-proxy它可以集成rstudio

完成后再登陆会有个坑,就是多用户登陆的,但是只有第一个用户可以访问rstudio,其它用户不行,这是权限问题,要将/tmp/rstudio-server/secure-cookie-key 改成757权限 chmod 777 secure-cookie-key
好啦完成啦,虽然写的简单,但是对于小白的我来说,自己看官网和技术贴也是弄了3周,才解决所有的坑

以下是参考的贴子 和官方文档

https://www.jianshu.com/p/fd9ddce53465 这个贴子和下面的贴子互补

https://blog.51cto.com/m51cto/2370679 这个贴子很详细

https://github.com/jupyterhub/jupyter-rsession-proxy 这是github上的具体安装方法

https://www.rstudio.com/products/rstudio/download-server/ 这是安装rstudio的

http://cran.rstudio.com/bin/linux/ubuntu/README.html 这是安装R依赖包

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu系统中jupyterhub安装R内核集成rstudio 的相关文章

  • nginx中location里面的try_files配置导致Vue设置history模式下的请求丢失参数

    nginx中location里面的try files配置导致vue设置history模式下的请求丢失参数 背景描述 在一次生产环境中 vue使用history模式在访问地址的参数会丢失 地址栏也会变成没有参数的地址 并且请求会发生301重定
  • 快速排序算法详解(原理,时间复杂度,实现代码)

    快速排序算法详解 原理 实现和时间复杂度 快速排序是对冒泡排序的一种改进 由 C A R Hoare Charles Antony Richard Hoare 东尼 霍尔 在 1962 年提出 快速排序的基本思想是 通过一趟排序将要排序的数
  • sql 字段求和_VBA+SQL-常用函数

    SQL语句中的一些简单计算函数 如max函数 SELECT MAX 列字段 AS 别名1 FROM 工作表名 如AVG函数 SELECT AVG 列字段 AS 别名1 FROM 工作表名 使用实例说明 源数据 查询内容 对英语成绩最高分 对
  • 【Java基础】day13

    day13 一 Spring Bean 生命周期是怎样的 详细过程分为以下几个步骤 初始化 Bean 容器通过获取 BeanDefinition 中的信息进行实例化 这一步仅仅是简单的实例化 并没有进行依赖注入 实例化的对象被包装在 Bea
  • 脚手架搭建react项目遇到的问题?

    一 配置proxy代理 配置代理其实很简单 但是理解其中我还不是太懂 贴一下代码看一下配置吧 说一下我遇见的问题 因为以前用webpack配置需要在config里配置devServer 网查脚手架搭建的项目不用这么麻烦 直接package
  • 【100%通过率 】【华为OD机试c++/python】日志限流【2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 某软件系统会在运行过程中持续产生日志 系统每天运行N单位时间 运行期间每单位时间产生的日志条数保行在数组 records中 records i
  • 小程序中的callback使用,及面临的风险

    1 前言 在项目开发中 初步逻辑是 获取用户的openid 2 使用openid去查询用户数据表中是否有这个用户 3 如果没有这个openid的用户 非key字段 新建一条用户数据 但在实际的操作者 发现数据库会存在如下图的情况 数据库中o
  • 「Python 面试」第五次更新

    1 说一下 char varchar text 的区别 这里先介绍一下数据库的概念 数据库是一种数据结构 内含多种算法 帮助我们将数据以最优化的方式存储在计算机中 也可以帮助我们快速找到存储的数据 数据最终存储在计算机中都是以 二进制 的方
  • error: invalid operands to binary % (have ‘double‘ and ‘int‘)取模mod %

    此处出现错误 因为 不可以用于浮点型 double float类型 只能用于整型 int类型 可以强制类型转换 将浮点型强制转换为整型 解决此问题 double b int floor x 10 10 double c int floor
  • 系统架构设计师-计算机网络

    目录 一 计算机网络技术概述 1 网络概述 2 网络有关指标 3 网络分类 4 5G技术 二 组网技术 1 交换技术 2 基本交换原理 三 TCP IP协议簇 1 DHCP 2 DNS 四 网络规划与设计 一 计算机网络技术概述 1 网络概
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • iis服务器网站加速,iis6配置gzip给网页减肥加快网页加载速度的方法

    gzip是一款网页压缩组件 开启了之后可以大大压缩网站文件 达到加快浏览速度的目的 尤其国外vps或者较大的网页 效果极为明显 linux vps或服务器 我们在配置环境的时候一般面板都集成安装了 会自动开启 但是还是有很多朋友喜欢用win
  • git 建立分支仓库

    Git 命令版本 查看本地分支及追踪 找一个文件夹目录 clone 仓库 Git branch vv 查看所有分支 Git branch a 查看本地分支 git branch 查看远程分支 git branch r 创建本地分支dev g

随机推荐

  • 对Unity3D 静态批处理和动态批处理的理解

    Draw Call就是CPU调用图像编程接口 像OpenGL或者 DirectX 简单来说 Draw Call就是由CPU发起的一个命令 添加到一个命令缓冲区 当GPU完成了上一次的渲染任务之后 会从命令缓冲区的命令队列中再取出一个并执行
  • hive有没有python api_python 访问hive

    pip install impyla 0 14 1pip install pure sasl 0 5 1pip install thriftpy 0 3 9pip install thrift sasl 0 2 1pip install t
  • 君正周生雷:MIPS架构授权促成本降至ARM 1/2

    转自 http laoyaoba com forums viewthread php tid 1525231 君正周生雷 MIPS架构授权促成本降至ARM 1 2 12月24日消息 腾讯科技日前走访了国内CPU企业君正集成电路有限公司 君正
  • vue3+uni——watch监听props中的数据(组件参数接收与传递defineProps、defineEmits)

    案例说明 A页面引用的子组件B A页面
  • 利用Git Diff比较Excel-推荐一款小工具

    PowerShell DiffExcel is an open source and text based tool to compare excel it supports Git diff 前言 ExcelBDD把Excel存储到Git
  • Spring Boot+thymeleaf 静态资源上下文的问题

    我在使用Spring Boot thymyleaf过程中修改server context path上下文属性后 页面的静态资源需要上下问来定位 那下面的js为例子 因为静态资源的访问地址是 localhost 8080 scripts ap
  • 看懂2020年智能浪潮,我们从百度和谷歌的AI足迹出发

    2020年已经过去 无论我们过得顺遂平安 还是过得无比艰难 我们应该都会记住这一年 回顾2020年 在这个不同寻常的疫情之年 科技成为人类抗击疫情的关键 而人工智能技术投入抗疫战争之中 可以说是人类有史以来的第一次 而与此同时 AI技术已经
  • [Note ]B站翼王10TB和100TB FreeNas硬件笔记以及配置

    BV18W411f7u9 DIY一台高性能的MINI ITX文件服务器 还要能使用万兆网络 BV1qE411672a 年轻人的第一台自己组装的100TB 容量的文件服务器 准备自己在家里搭Nas 家里人的手机存储也经常不够 自己也对硬件特别
  • SCSI、ISCSI、iSER、NVMe、NVMe-oF、NVMe-oF over RDMA

    在存储系统中 上层协议可以泛指 指令 也就是比如 读出从某某开始的多少长度的扇区 指令包含三大关键信息 1 操作码 Opreation Code 或称为OP code 比如write read等等 2 起始地址 从哪里开始读 如果是文件的话
  • 利用Redis实现分布式全局唯一ID

    Component public class RedisIdWorker 开始时间戳 private static final long BEGIN TIMESTAMP 1640995200L 序列号的位数 private static f
  • windows或者任何系统通过二进制安装最新的Protocol Buffer Compiler

    此处使用二进制法安装 适用于任何操作系统 安装预编译的二进制文件 任何操作系统 要从预编译的二进制文件安装最新版本的协议编译器 请按照以下说明操作 1 从 github com google protobuf releases 手动下载与您
  • 组合型模式

    概述 对于这个图片肯定会非常熟悉 上图我们可以看做是一个文件系统 对于这样的结构我们称之为树形结构 在树形结构中可以通过调用某个方法来遍历整个树 当我们找到某个叶子节点后 就可以对叶子节点进行相关的操作 可以将这颗树理解成一个大的容器 容器
  • Python 房价预测 kaggle 线性回归 SVM 神经网络 随机森林 集成模型

    摘要 现如今房产成为大多数家庭总资产中占比最大的一部分 也成为国人投资的重要渠道 研究和预测房产价格对我国人民和宏观经济发展都有重要价值 本文对包含房产各项基本信息及价格的数据进行处理 利用包括线性回归 核岭回归 支持向量回归 神经网络 决
  • C、C++ 中\n、\t、\r的具体用法功能

    简单介绍 n 表示换行操作 光标会移动到下一行 next line t 表示水平制表空行操作 相当于Tab键 不会换行 r 相当于回车 相当于光标回到本行首位置 不会换行 用法实例演示 我们以一个9x9乘法表C 具体代码为例 演示一个三个的
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 汇编程序设计与计算机体系结构软件工程师教程笔记:汇编语法基础知识

    汇编程序设计与计算机体系结构 软件工程师教程 这本书是由Brain R Hall和Kevin J Slonka著 由爱飞翔译 中文版是2019年出版的 个人感觉这本书真不错 书中介绍了三种汇编器GAS NASM MASM异同 全部示例代码都
  • 2021.10.04 task9 react-hardhat

    2021 10 04 主要根据dapp learning的教程在学习 在学习task 9 hardhat react 的部分 区块链项目大部分用的都是 react 所以了解 react的基本机制也很重要 今天着重学习了react react
  • 测试报告和结果分析 —— allure整合pytest生成测试报告

    一 生成HTML测试报告的三种方式 1 unittest和HTMLTestRunner整合 2 allure和pytest整合 3 Jenkins中安装allure插件 Jenkins安装插件出错 不能正常使用 二 allure整合pyte
  • 知识图谱:语义网络、语义网、链接数据、知识图谱

    0 发展历程 1 语义网络 Semantic Networks 语义网络是由Quillian于上世纪60年代提出的知识表达模式 其用相互连接的节点和边来表示知识 节点表示对象 概念 边表示节点之间的关系 语义网络的优点 1 容易理解和展示
  • ubuntu系统中jupyterhub安装R内核集成rstudio

    需求 最后公司需要将原来用的Jupyter单用户版本改成Jupyterhub多用户版本 方便公司统一管理用户 并且因为平时工作会用到python和R的IDE 正好Jupyterhub可以满足需求 网上搜了很多 基本是三种方式 一种是通过k8