使用云服务器从0开始搭建云端Jupyter Lab|Notebook

0、购买云服务器

购买服务器我只推荐硅云,因为香港服务器免备案!而且25岁以下仅需10元每月,至少可买3年!每年享有多次原价续费机会,可补价升级配置。

硅云服务器首页://www.vpsor.cn?userCode=qh1dc78

VPS购买页://www.vpsor.cn/activity/cloudsite?userCode=qh1dc78

1、安装宝塔面板

Centos安装脚本

yum install -y wget && wget -O install.sh //download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

Ubuntu/Deepin安装脚本

wget -O install.sh //download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

宝塔面板7.9.2开心版[不是很必要]

功能介绍:
系统工具:日志清理工具 增加 2.0版本!
宝塔插件:堡塔网站加速 增加 4.2版本!
专业版插件:网站监控报表 增加 6.8版本!
企业版插件:堡塔防提权 改名 堡塔防入侵!
企业版插件:堡塔限制访问型证书-Linux版 增加 1.2版本!
第三方插件:Nginx免费防火墙 更新 6.3版本!
第三方插件:百度网盘 更新 3.9版本!
部分第三方插件已经全部更新同步官方!
修复第三方插件百度网盘无法使用问题!
修复已知道的一些插件到期的问题!
修复第一次安装脚本,需要退出登录重登才能安装插件的逻辑问题!
修复部分用户登录虚拟账户无法获取列表 authlist空白 的问题!
修复 危险级别:特高 去除宝塔因为账户跟宝塔不匹配封 ban用户ip风险的问题(导致恢复免费版也无法使用,只能降级7.7.0 才能使用)!
已支持 Arm 架构!!!
一键脚本代码:

curl //www.ddayun.cn/bt/update6.sh|bash

ps:安装宝塔面板仅仅是为了操作文件更加方便!
宝塔面板安装完成后,你会获得登录网址和账户密码

2、配置python环境

鉴于python学习进阶需要使用多个不同版本的Python虚拟环境来实现不同项目的部署,我建议安装Anaconda3来进行Python环境管理。

这里可以选择自己想要的anaconda版本,不同版本自带的python版本也不相同,此处我选择2021.04

官网镜像://repo.anaconda.com/archive/

清华镜像://repo.continuum.io/archi

首先安装curl方法:

yum update -y && yum install curl -y

或者wget方法:

yum -y install wget

curl和wget的区别://www.cnblogs.com/lsdb/p/7171779.html

下载安装包

curl //repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh
#或者
wget //repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh

使用bash命令安装anaconda(名字要对应):

bash Anaconda3-2021.04-Linux-x86_64.sh

按照安装提示,键入回车:

Please, press ENTER  to continue
>>> ENTER

同意安装协议

安装此版本时,会强制用户看完整个协议,直接一路回车就行,直到看到确认信息

# 输入yes,表示同意安装协议
Do you accept the license terms? [yes|no][no] 
>>> yes

确认安装路径(可修改,也可以使用自定义):

#使用默认路径,直接键入回车,使用自定义路径,直接输入安装路径
#此处使用 /opt/anaconda3作为安装路径
Anaconda3 will now be installed into this location:
/root/anaconda3  

- Press ENTER to confirm the location  
- Press CTRL-C to abort the installation  
- Or specify a different location below

[/root/anaconda3] >>> /opt/anaconda3

环境变量初始化

#此处询问是否初始化conda的环境,直接输入yes
Do you wish the installer to initialize Anaconda3
by running conda init? 

[yes|no][no] >>> yes

初始化时,anaconda将配置写入了~/.bashrc 文件,直接执行

source ~/.bashrc

后即可正常使用了。

安装完成后,如果是手动选择的路径,那么最好手动添加环境变量

export PATH=/你的安装路径/anaconda3/bin:$PATH

下一步我们建立Tensorflow环境,供以后使用

conda create -n tensorflow python=3.5
source activeate tensorflow
conda install -c conda-forge tensorflow

3.配置Jupyter

3.1配置Jupyter Notebook

然后我们就可以开始配置Jupyter Notebook了,

我直接使用root用户安装(若服务器有重要价值的话十分不推荐使用此方法,创建用户方法可参考文末的引用文章)

生成Notebook密码:

#进入python环境
python
>>> from notebook.auth import passwd
>>> passwd()

控制台会提示输入密码两次,并生成一段sha1加密码,请复制并保留它,稍后会用到,

Enter password:
Verify password:
'argon2:a52.....'

#退出python环境
>>>quit()

然后我们要生成Jupyter Notebook配置文件,并使用vim命令修改

jupyter notebook --generate-config
vim ~/.jupyter/jupyter_notebook_config.py

在配置文件末尾添加如下内容:

# 允许通过任意绑定服务器的ip访问
c.NotebookApp.ip = '*'
# 用于访问的端口
c.NotebookApp.port = 80
# 不自动打开浏览器
c.NotebookApp.open_browser = False
# 设置登录密码
c.NotebookApp.password = 刚刚生成的sha1密码

我不喜欢vim这个垃*F**k文本编辑器,所以我在宝塔改好,直接上传。

*后期我打算直接绑定二级域名,因此使用80端口(出于安全考虑,不建议,但想要域名不用加端口号,最方便的是80端口)

*还可以在配置文件中绑定SSL证书,待补充

配置文件修改完成后,因为我使用的是80端口,需要关闭CentOS内置的httpd服务以免端口冲突。

service httpd stop

调试阶段直接用:

#退出ssh终端则停止运行,--allow root允许管理员账户
jupyter notebook --allow-root

最后用nohup命令启动notebook,确保ssh终端关闭后服务在后台继续运行:

#no hang up不需要终端挂起
nohup jupyter notebook --allow-root

最后我还将子域名”nb.我的域名”的DNS指向VPS地址,我就可以通过”nb.我的域名”直接访问Notebook了!

3.2配置jupyter lab

安装jupyter lab

#pip安装 (base)
pip install jupyterlab==3
pip install jupyterlab-language-pack-zh-CN # 安装中文界面
#conda安装
conda install -y -c conda-forge jupyterlab==3
pip install jupyterlab-language-pack-zh-CN # 使用pip安装中文界面

在Jupyter Lab的网页中,点击:
Settings→Language→Chinese (simplified, china) (中文 (简体,中国))

JupyterLab 可以通过condapippipenvordocker的方式安装。

# conda
conda install -c conda-forge jupyterlab

# pip
pip install jupyterlab

安装 nb_conda_kernels*

nb_conda_kernels 是一个 Jupyter 的扩展功能(extension),可以管理多个 Conda 环境下的 Jupyter 核心(kernels),整合多 Conda 环境中各种不同版本的 Python 或 R 等语言。

nb_conda_kernels 必须安装在在 Jupyter(Jupyter Notebook 或 JupyterLab)所在的 Conda 环境中,可以直接放在 base 环境中,或是另外建立独立的 Conda 环境亦可。

这里我们建立一哥新的 Conda 环境,专门用于放置 JupyterLab:

# 建立 Conda 环境,并安装 JupyterLab
conda create --name jupyterlab python=3.7 jupyterlab

在此 Conda 环境加装 nb_conda_kernels 扩展功能套件:

# 安装 nb_conda_kernels 扩展功能套件
conda install --name jupyterlab nb_conda_kernels

安装 Jupyter Kernels*

所有需要在 Jupyter 中透过nb_conda_kernels来使用 Conda 环境,都需要安装对应语言的的 Jupyter 核心(kernels)。

建立一个 Python 2.7 的 Conda 环境:

# 建立 Python 2.7 的 Conda 环境
conda create --name Python2 python=2.7.18

# 安装 Python 的 Jupyter 核心
conda install --name Python ipykernel

建立一个 R-4.0.2 的 Conda 环境:

# 建立 R 4.0.2 的 Conda 环境
conda create --name R-4.0.2 --channel r r-essentials=4.0.2 r-base=4.0.2

# 安装 R 的 Jupyter 核心
conda install --name R-4.0.2 --channel r r-irkernel

配置jupyter lab

生成 jupyterlab 配置文件

使用--generate-config参数,生成 jupyterlab 配置文件。

$ jupyter lab --generate-config

将之前notebook的配置文件那几行复制一下,写入jupyter_lab_config.py

启动

安装好所有的 Conda 环境以及对应的 Jupyter 核心之后,就可以依照一般的方式启动 JupyterLab环境:

# 载入 Jupyter 的 Conda 环境(下面两种方式都可以激活)*
$ conda activate jupyterlab 
$ source activate jupyterlab

# 载入 Conda 的 Base 环境*
$ conda activate base
$ source activate base

启动 JupyterLab

如果想同时实现notebook和lab两种python工具,那么运行jupyter lab就可以了!

#最终只需要运行下面的命令
#退出终端则停止(调试)
$ jupyter lab --allow-root
#挂起
$ nohup jupyter lab --allow-root

附:如果登录jupyter密码错误,则需要修改jupyter_notebook_config.json密码

#jupyter_notebook_config.json has higher priority
$ jupyter notebook password

#结果
[JupyterPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_server_config.json

4.域名代理及计划任务

由于我们使用了80端口,那么解析域名就很简单了。

我使用的是DnsPod来解析,主机记录指的是二级域名即将jupyter指向nb.你的域名

完成这一步就可以通过域名访问你的云端jupyter服务了。

最后我们再宝塔添加一个计划任务,防止进程中断

#!/bin/bash
kill $(lsof -t -i:80)
export PATH=/root/anaconda3/bin:$PATH
#执行任务
nohup jupyter lab --allow-root


从日志来看,我们已经成功添加定时任务:

原创作者:孤飞-博客园
原文地址://www.cnblogs.com/ranxi169/p/16531863.html

Tags: