Jupyter在做数据预处理以及数据可视化方面非常方便,它可以在线运行并一直保留结果,因此本文主要讲解云服务器如何连接到jupyter并运行ipynb文件中的代码。在云服务器使用jupyter主要分为包括在虚拟卡环境中安装jupyter包、启动Jupyter、在本地通过ssh配置本地与服务器映射、在本地浏览器访问jupyter等步骤,因此下面将从服务器和本地两个方面详解。
一、服务器端
1、安装Jupyter notebook
首先通过命令conda activate 虚拟环境名(例如conda activate gym)进入使用conda创建的云服务器虚拟环境,然后使用pip install notebook包,首次需要执行jupyter notebook --generate-config生成jupyter的配置文件,这里服务器会输出你的配置文件存储路径,(方便后面在浏览器运行代码后查找代码文件位置),紧接着通过jupyter notebook passward设置jupyter网页登陆密码,这里需要先输入一遍然后再确认一遍,一共输入两次密码。
pip install notebook
jupyter notebook --generate-config
jupyter notebook passward
2、启动Jupyter notebook
在该环境中需要找到一个空闲的端口不能被占用,一般设置为8888、8890、8891等,我这里使用的是8901,可以先在服务器端先使用lsof -i查看服务器的该端口是否被占用,若没有输出任何内容直接换行了则说明端口没有被占用,则可以执行jupyter-notebook --no-browser --port=8891命令在服务器端启动Jupyter notebook服务,启动后终端会显示一个包含token的url,应该为127.0.0.1:8901\tree啥的,但是这一步先不要直接访问该ip:port,但注意在后面能访问时浏览器输入127.0.0.1:8901即可,不要输入tree,这样浏览器配置就成功了。
lsof -i:8891
jupyter-notebook --no-browser --port=8891
二、本地
在本地我直接使用Win+R然后窗口中输入cmd启动C盘页面,可以先使用netstat -ano | findstr :8900命令行判断该端口是否被占用,然后输入ssh -N -f -L 127.0.0.1:8901:127.0.0.1:8901 user@remote-server.com -p 服务器端口号将服务器的jupyter服务器端口映射到本地端口,这里8901还是指的未被占用的端口。这里需要注意的是user@remote-server.com -p 服务器端口号里面的user是你的服务器账号名,remote-server.com是你账号的服务器ip地址,-p是你账号的服务器端口号,例如,整体的命令可以写为ssh -N -f -L 127.0.0.1:8901:127.0.0.1:8901 zhangsan@256.128.65.54 -p 54146等,这里是举了个例子。紧接着输入完之后在电脑本地端需要输入服务器的帐号密码认证。
netstat -ano | findstr :8901
ssh -N -f -L 127.0.0.1:8901:127.0.0.1:8901 user@remote-server.com -p 你的服务器端口号
最后,上述步骤均完成之后便可以在本地电脑的浏览器端输入127.0.0.1:8901(这里后缀加不加tree我这里打开的都是一个界面),然后首次登陆的时候可能需要登录账号密码(图1是先前8889端口被占用登录界面,后面更新为8901端口),这里的账号密码是在服务器中设置的jupyter登录密码,不要搞成服务器的密码,登录成功后便可以运行代码。图2是密码输入正确之后跳转到服务器项目目录的界面,之后便可直接写代码测试,其实如果是首次可能不会出现那个界面,但是一点都不耽误访问云服务器的数据集、代码等内容。

图1jupyter密码登录界面

图2项目映射结构
三、Jupyter实操
最后便开始测试jupyter,直接新建文件夹,然后创建ipynb文件,内核选择Python3,然后在该页面直接编写代码便能访问你云服务器目录的数据集等信息,不要担心找不到数据集,还有代码文件的目录保存在你的服务器端的配置文件目录中(前面说过)。下面这张图是我把数据预处理后的格式并可视化前5条,然后你要保存数据到指定目录便可以通过绝对路径保存到服务器方便查看。

图2 Jupyter可视化前50条预处理数据
如图3保存日志所示,课实时在服务器端查看该文件的保存日志从而查找到该ipynb文件位置。

图3服务器端保存日志图
感谢大家的关注,可以多多交流!
参考
[1] 如何在pycharm上使用jupyter,并使用远程服务器提供服务运行_pycharm正在启动jupyter服务器-CSDN博客
[2] 如何在pycharm上使用jupyter,并使用远程服务器提供服务运行_pycharm正在启动jupyter服务器-CSDN博客