Overview

Jupyter已经不用再花笔墨去介绍了。今年公司国内的业务已经很稳定,我也可以放心交给其他人了,现在主要精力放在东南亚的业务上。所以,离线模型训练就需要在云上安装Jupyter环境。这次,我用Anaconda来安装。

1. 安装Anaconda

首先找到LinuxPython3.7版本的AnacondaAnaconda,复制链接地址。然后ssh登录到云服务器上,运行下面的命令下载:

wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh

下载完成后,安装:

bash Anaconda3-2019.07-Linux-x86_64.sh

一路yes和回车,最后会安装到本地用户目录下。

2. 启动Jupyter

安装好Anaconda之后,jupyter其实已经安装好了,接下来我们启动它。

jupyter notebook

会发现报错如下:

Jupyter Notebook won't start due to ports being already in use.

这是因为服务器上已经有Jupyter了,它占用了8888端口,导致我安装的程序打不开。由于已经安装的Jupyter在别的用户目录下,涉及到更烦人的权限问题,所以我采用更换端口的方式来运行我的Jupyter

2.1 配置Jupyter端口

我们在命令行中运行下面命令:

jupyter notebook --generate-config

然后打开配置文件:

vim  ~/.jupyter/jupyter_notebook_config.py

直接Shift+G跳转到文件尾部,添加这几句:

c.NotebookApp.ip = '*'  # 允许访问此服务器的 IP,星号表示任意 IP
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 8080 # 使用的端口

我们把端口设置成8080,和另外的Jupyter区别开,保存文件并退出。

然后重新运行:

jupyter notebook

这下就正常了,显示如下:

[I 17:49:13.763 NotebookApp] The Jupyter Notebook is running at:
[I 17:49:13.763 NotebookApp] http://****.**.id:8080/?token=555aa7ce6bbddb*********c1c716b3e4744626d
[I 17:49:13.764 NotebookApp]  or http://127.0.0.1:8080/?token=555aa7ce6bbddb*********c1c716b3e4744626d

这里token=后面的一串字符就是密码,要记住。
然后我们在本地浏览器中输入 http://服务器ip:8080,就会提示输入密码,输入前面保存的token即可。
但是这里有个问题:我们的命令行窗口是不稳定的,一旦断掉Jupyter就失效了。我们只要用screen打开Jupyter就可以关掉窗口了:

screen jupyter notebook 

之后我们就可以在本地很便捷地使用远程服务器进行离线建模训练了。

本文主要参考了以下文章,感谢:
远程服务器上开启jupyter notebook
Jupyter Notebook won't start due to ports being already in use