Linux安装Anaconda3详细教程;Linux安装jupyterhub详细教程

为什么写这篇博客:毕业后小作业!如有错误,希望贵人能留言指正。
jupyterhub
本教程基于以下配置完成:
电脑:阿里云虚拟机
操作系统:Linux-CentOS7
Anaconda3安装目录:/opt/anaconda
Jupyterhub操作目录:/opt/jupyterhub

1更新一下软件包相关信息;时间挺久的,请耐心等待。
yum -y upgrade
yum makecache
2安装conda
# 安装依赖包
yum install -y bzip2
# 使用脚本安装conda;
# 官方脚本地址:https://repo.anaconda.com/archive/
# 国内脚本地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive
cd /opt
curl -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.0-Linux-x86_64.sh
bash Anaconda3-5.3.0-Linux-x86_64.sh

脚本执行过程中,会有交互性操作:
交互场景1:回车一次。
在这里插入图片描述
交互场景2:一直按回车直到提示yes or no,输入 yes ,回车一次。
在这里插入图片描述
交互场景3:输入anaconda的安装目录 /opt/anaconda3 ; 回车一次。安装过程时间很久,请耐心等待。
在这里插入图片描述
交互场景4:选择配置环境变量;输入 yes ;回车一次。
在这里插入图片描述
交互场景4:选择不安装vscode;输入 no;回车一次。
在这里插入图片描述
场景5:
1 输入canda -V ,如下图所示,则表示安装成功并配置环境变量成功。如果不成功,重启系统再一次。
2 假如是因为在配置环境变量的场景3中,由于忘记输入yes操作而出现command not found,则自行按2.1所示进行手工配置环境变量操作。
在这里插入图片描述

2.1手工配置环境变量操作
# 
echo  -e "#set anaconda environment\nexport PATH=/opt/anaconda3/bin:$PATH" > /etc/profile.d/anaconda.sh
source /etc/profile
canda -V 
3安装jupyterhub;官方教程 https://github.com/jupyterhub/jupyterhub
# 安装jupyterhub的依赖软件
yum install -y npm nodejs-legacy
# 通过conda安装jupyterhub,时间有点久,中间会有交互性操作,请留意
conda install -c conda-forge jupyterhub -y

jupyterhub安装成功,如下图所示。
在这里插入图片描述

4配置jupyterhub_config.py
# 创建文件夹
mkdir /opt/jupyterhub && cd /opt/jupyterhub
# 配置文件夹的权限
chmod -r 600 /opt/jupyterhub
# 生成配置文件
jupyterhub --generate-config
  1. 根据自己的需求,对jupyterhub_config.py 配置文件进行修改,原理如下所示
    • jupyterhub采用和linux系统相同的认证方式。
    • 在admin_users和whitelist名单里的用户必须是已经被创建的linux系统用户。
    • 在 a d m i n _ u s e r s 和 w h i t e l i s t 名 单 里 的 用 户 可 以 通 过 浏 览 器 利 用 l i n u x 系 统 的 用 户 名 和 密 码 登 录 j u p y t e r h u b 。 \color{blue}{在admin\_users和whitelist名单里的用户可以通过浏览器利用linux系统的用户名和密码登录jupyterhub。} admin_userswhitelistlinuxjupyterhub
# 配置jupyterhub管理员账户.
Authenticator.admin_users = {'admin'}  
# 配置jupyterhub普通用户;默认不能使用填写root系统账户。
Authenticator.whitelist = {'st1','st2'}  
  1. 创建linux系统用户:
# 添加一个用户组
groupadd students
# 创建一个文件夹
mkdir /home/students
# 创建一个用户;用户名:st1,手动指定家目录位置: /home/students/st1
useradd st1 -d /home/students/st1 -m -g students && echo "123456" | passwd --stdin st1
# 批量创建50个用户
for i in {0..49};do 
useradd st${i} -d /home/students/st${i} -m -g students && echo "123456" | passwd --stdin st${i}
done
5启动jupyterhub;并使其在后台运行。
# 2.启动jupyterhub;并使其在后台运行。
# 重点:--ip后面填写本机器局域网内的IP;使用 ip r 命令可以查看到,如下图所示。
cd  /opt/jupyterhub
nohup jupyterhub -f /opt/jupyterhub/jupyterhub_config.py --ip 172.17.31.232 --port 80 >> /opt/jupyterhub/log  2>&1 &

在这里插入图片描述

常见故障.

故障查找方法:
在jupyterhub服务器上执行 ps -ef | grep jupyterhub 查看你服务是否已经启动.
在jupyterhub服务器上执行 netstat -ntl | grep 80 查看80端口是否已经被监听.
在jupyterhub服务器上执行  systemctl status firewalld 查看防火墙是否已经关闭.

在本地执行 ping IP 查看本地能否请求到此IP
在本地执行 telnet IP 端口 查看本地是否可以连接到此IP的端口

以上全正常则只能通过在jupyterhub服务器上通过jupyterhub日志排查
tail -f /opt/jupyterhub/log

1. 连接上jupyterhub后,创建python文件夹时,报如如下图所示500错误。

在这里插入图片描述
故障排查:
查看jupyterhub日志,发现和tornado包的版本有关。
解决办法:
使用root用户执行此命令

pip install tornado==5.1.1
pkill python
cd  /opt/jupyterhub
nohup jupyterhub -f /opt/jupyterhub/jupyterhub_config.py --ip 172.17.31.232 --port 80 >> /opt/jupyterhub/log  2>&1 &
2. jupyterhub服务正常启动,但在本地游览器上却访问不到(404错误):

解决方法:
1.关闭linux系统的防火墙或者打开相关的服务端口。 systemctl stop firewalld
2.在阿里云网站上,开放相关的服务端口。

3. 安装jupyterhub时,遇到如下图所示的情况。

. 在这里插入图片描述
表面原因:系统上安装过python。
根本原因:python版本 和 jupyterhub版本 兼容性问题。
查看当前环境python版本:python -V
解决办法:
1.安装新的python版本并激活新的python版本 。准确的说应该是切换到jupyterhub版本相对应的python版本环境下。

# 安装python3.6
conda create --name python3.6 python=3.6
# 激活python3.6的环境
conda activate python3.6
# 检查是否切换成功
python -V
相关技能
# 1时时查看日志:
tail  -f  /opt/jupyterhub/log
# 2配置conda的国内源;本人未配置。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge  
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/  
conda config --set show_channel_urls yes  
# 3删除linux用户
userdel -r 用户名
# 4关闭防火墙
systemctl stop firewall
# 5查看端口
netstat -ant
# 关闭占用该端口的程序 之 方法1
port=端口号
pid=$(lsof -i:$port|sed -n '2,2p'|awk '{print $2}')
kill  $pid
# 本次教程需要的vi操作
打开文件: vi 文件名
进入底部模式:shift +  :
底部模式下,进行文件内搜索字符:/字符   ; n 下一个
进入普通模式:按esc按钮
进入编辑模式:普通模式下按字母a键  
保存文件并退出:底部模式下输入wq,然后回车。
# 简单暴力关闭jupyterhub
pkill python
彩蛋

笔者的微信公众号,技术是人生的一部分,技术之外也光彩绚丽, 扫描二维码关注微信公众号,闲暇之余我们畅谈未来
在这里插入图片描述

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值