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
彩蛋

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

猜你喜欢

转载自blog.csdn.net/IMPlove/article/details/99708820