本地访问服务器的Jupyter notebook
背景
自己平时喜欢用python
作为编程语言,因此想着在服务器上配置anaconda3
和Jupyter notebook
,在服务器上运行Jupyter notebook
,同时在本地访问Jupyter notebook
,这样可以在本地编辑代码,在服务上进行计算。
配置环境
下载anaconda3
可以在本博客的资源页面,找到各个版本的anaconda3
的下载链接,我下载的是Anaconda3-2020.11-Linux-x86_64.sh
。
安装anaconda3
安装anaconda3
就很简单了。
sh Anaconda3-2020.11-Linux-x86_64.sh |
按照提示一步一步走就可以了,安装路径我选择的是/home/user_test/softwares/anaconda3
。
Do you wish the installer to initialize Anaconda3 |
这里一定要输入no
或者直接回车,不然会创建一个anaconda3
的环境,在shell边上会多出来一个base的标志看起来很不爽。
配置anaconda3的环境变量
vim ~/.bashrc |
配置 Jupyter notebook
生成配置文件
一般而言,配置文件jupyter_notebook_config.py
,会在/home/USERNAME/.jupyter/jupyter_notebook_config.py
。如果不存在的话,可以利用下面来生成。
jupyter notebook --generate-config |
如果是root`用户的话,需要使用下列命令
jupyter notebook --generate-config --allow-root |
一般情况下不会在root用户下面创建软件,而且在用服务器的时候,最好别用root账号,太危险了。
配置密码
- 使用
jupyter notebook password
创建密码。[user_test@master ~]$ jupyter notebook password
Enter password:
Verify password:
[NotebookPasswordApp] Wrote hashed password to /home/user_test/.jupyter/jupyter_notebook_config.json - 查看密码的hash值,并复制
[user_test@master ~]$ cat ~/.jupyter/jupyter_notebook_config.json
{
"NotebookApp": {
"password": "argon2:$argon2id$v=19$m=10240,t=10,p=8$kzqRTDgdyoe6S647DMuOsg$3WwKVJakPy/pF7sXSMjbqg"
} - 添加密码到配置文件
vim ~/.jupyter/jupyter_notebook_config.py
##添加
##允许访问此服务器的 IP,*表示任意 IP
c.NotebookApp.ip='*'
c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$kzqRTDgdyoe6S647DMuOsg$3WwKVJakPy/pF7sXSMjbqg' #这里填上刚才复制的hash值
c.NotebookApp.open_browser = False #运行时不打开本机浏览器
c.NotebookApp.port =8888 #端口号
c.NotebookApp.enable_mathjax = True # 启用 MathJax
c.NotebookApp.allow_remote_access = True #允许远程访问
测试
启动 Jupyter book
通过后台启动Jupyter notebook
jupyter notebook & |
可以使用jobs
命令查看,后台运行的程序的状态。
[user_test@master ~]$ jobs |
本地访问
在本地使用浏览器输入IP:8888
,并输入密码进行访问就可以了
http://172.16.34.127:8888/ |
可以看到可以通过本地访问服务器开启的Jupyter notebook
。我们在服务器哪个文件夹开启jupyter notebook
,进入的界面就会在哪个文件夹,保存的.ipynb
文件,也会保存在该文件夹。
关闭Jupyter notebook
可以使用kill %id号
关闭后台运行的进程。
[user_test@master ~]$ jobs |
计算节点上访问
因为我是在控制节点上配置和安装Jupyter notebook
的,但是我把计算节点的/home
目录通过NFS
挂载到了控制节点的/home
,因此我可以在计算节点上开启Jupyter notebook
,一般而言控制节点不会进行计算,只有计算节点才会进行计算。
ssh node1 |
依然可以成功,只要能和计算节点能够通信就可以实现,但是对于一般的集群而言,用户只能访问控制节点,计算节点是不会暴露给用户的,个人使用的话还是不错的。