前言:
买了台阿里云服务器(ECS),不知道干啥用.CPU:1核,内存:2 GB, 操作系统:CentOS 7.4 64位, 带宽:1Mbps,磁盘: 40G.
想着空着也是空着,不如搭个Python运行慢环境,随时可以上去运行代码。那就搭一个jupyter notebook玩玩。
1.安装Python3
#获取python3.6的源码包
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
sudo mkdir /usr/lib/python
#解压源码包到指定文件夹中
tar -zxvf Python-3.6.1.tgz -C /usr/lib/python
./configure
make
#进行安装
make install
大概安装主要命令就是这,详细过程参照笔记CentOS 7.4 安装python3及虚拟环境
2.安装anaconda3
首先下载anaconda 的linux版本链接
https://www.anaconda.com/download/ 按自己需求下载
然后配置安装命令
bash Anaconda3-4.2.0-Linux-x86_64.sh 然后一路回车/yes
就可以安装完成安装完成后输入
anaconda -V 查看安装的版本以及conda -V 的版本3接着,最后一步。
也是最重要的一步这时候启动jupyter notebook肯定会报错,先不急启动
暂时这样 有时间再补充。。。
3.配置jupyter notebook
1. 生成一个 notebook 配置文件
默认情况下,配置文件 ~/.jupyter/jupyter_notebook_config.py 并不存在,需要自行创建。使用下列命令生成配置文件:
jupyter notebook --generate-config
如果是 root 用户执行上面的命令,会发生一个问题:
Running as root it not recommended. Use --allow-root to bypass.
提示信息很明显,root 用户执行时需要加上 --allow-root 选项。
jupyter notebook --generate-config --allow-config
执行成功后,会出现下面的信息:
Writing default config to: /root/.jupyter/jupyter_notebook_config.py
2. 生成密码
启动ipython
$ipython
from notebook.auth import passwd
passwd()
Enter password:
Verify password:
'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed 这一串就是要在 jupyter_notebook_config.py 添加的密码。
c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
3. 修改配置文件
在 jupyter_notebook_config.py 中找到下面的行,取消注释并修改。
vi /root/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
以上设置完以后就可以在服务器上启动 jupyter notebook,jupyter notebook, root 用户使用 jupyter notebook --allow-root。打开 IP:指定的端口, 输入密码就可以访问了。
需要注意的是不能在隐藏目录 (以 . 开头的目录)下启动 jupyter notebook, 否则无法正常访问文件。
4.注意事项
jupyter notebook --allow-root & –allow-root 是为了允许root运行
这说明已经打开成功
然后还有重要一步
在阿里云服务器控制台中添加一个安全组,端口是你设置的jupyter打开的端口我这里面的是80
这点很重要,要是没设置的话, 本地浏览器是打不开的
设置成功之后再浏览器中
http://ip地址:端口号
输入之前在ipython中设置的密码就可以登录了
自此,完结。
5.日志和后台进程
上面的启动方式,会在当前目录生成一个日志文件,我忘了叫上面名字,总之随着jupyter notebook的运行,日志文件会越来越大,如果不是很重要,可以设置不记录日志,方法是将所有的输出都重定向到/dev/null 2>&1 &
此外,上面的启动方式是启动一个前台进程,如果ssh连接断开,jupyter notebook也就失效了,所以需要将jupyter notebook作为一个后台进程启动,在linux中是nohup命令。
# 不启动ssl,不记录日志输出,作为后台进程启动jupyter notebook
nohup jupyter notebook --allow-root >/dev/null 2>&1 &
6.停止jupyter notebook
jupyter notebook作为后台进程启动后,如果想要停止它,可以先找到进程ID,然后kill。
# 查看进程
ps -ef | grep 'jupyter notebook'
# 输出如下,这里的21983即为进程id,
# hadoop 22136 21983 0 09:10 pts/1 00:00:00 grep jupyter notebook
# 杀死进程
kill -9 21983
# 此时浏览器无法再连接jupyter notebook了吧。
参考资料
http://jupyter-notebook.readthedocs.io/en/latest/public_server.html#notebook-server-security
http://jupyter-notebook.readthedocs.io/en/latest/public_server.html
http://www.cnblogs.com/zhanglianbo/p/6109939.html
http://blog.csdn.net/gavin_john/article/details/53177630
http://jingyan.baidu.com/article/335530daa4707f19cb41c3ef.html