你的专属运算中心 – Jupyter Notebook Server 搭建指南 – To Be Hacker-演道网

引言

Jupyter 是一个基于网页的交互式解释笔记本,现已经支持 50 多个不同的内核与编程语言。对于数据分析而言,这是非常难得的工具。不仅如此,你可以在 Jupyter 即时开启一个网页的 shell 终端,完全掌控你的服务器。

本文旨在梳理一遍在 VPS 上搭建 Jupyter Server 的安装过程。

安装前

准备一台装有 Ubuntu 16.04 的 VPS 。

操作过程

一、新建一个非 ROOT 账户(可选)

以 Root 权限运行一个长期的服务是非常危险的。一旦发生任何安全问题就将很有可能代表着你的服务器完全被他人掌控。为此,在进行下一步操作前,我建议你新建一个带有 Root 权限的普通账户。

操作过程很简单,参考以下两个命令即可:

adduser username

usermod aG sudo username

如有问题你可以参考这篇教程

二、安装 Jupyter 以及必要的依赖

首先,我们先安装
pip3

sudo aptget install pip3

其次,以 pip3 安装 Jupyter :

sudo pip3 install Jupyter

OK,安装过程就是这么简单。

三、配置 Jupyter 服务

先生成一个 Jupyter 的配置文件:

jupyter notebook generateconfig

生成的配置文件在
~/.jupyter 目录下。我们需要为其修改一定的参数:

Config

1
2
3
4
5
6
c.NotebookApp.ip = ‘*’ # 监听所有 ip 的连接
c.NotebookApp.password = u‘sha1:bcd259ccf…
c.NotebookApp.open_browser = False
 
# It is a good idea to set a known, fixed port for server access
c.NotebookApp.port = 9999

注意,上面 
c.NotebookApp.password 的值是一个 Hash 过后的密码,你需要在 IPython 中使用类似如下的过程生成:

Hach 密码生成过程

1
2
3
4
5
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: ‘sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed’

c.NotebookApp.port 是你服务监听的端口,设为任意一个你希望的值均可。

启动服务:

jupyter notebook

这样的服务一退出终端就会终止,使用
nohup 让其在后台运行:

nohup jupyter notebook &

四、让服务不中断(可选)

使用 nohup 虽然可以让服务在后台运行,但我们的服务并不能在重启或应用崩溃之时自动恢复。这里推荐一个比较好用的持久化工具:PM2 。我写过一篇介绍的文章,你也可以在网上找到相应的教程。

五、设置监听常用端口(可选)

如果你以普通用户运行 Jupyter 的话,那么是不能监听 1024 以下的端口的。这是Linux 系统一种安全机制。

有两种方案解决这个问题,一种是用
iptable 进行端口转发。如何配置你可以参考这个问答

第二种方法要稍微麻烦一点,那就是使用 Nginx 做代理。你可以参考网上这篇文章进行配置。

总结

如你所见,其实搭建的过程非常简单(主要是第二三步)。但要将这些搞得称心如意一点笔者可折腾了好一会儿。不过对于一个你经常需要使用的服务器来说,这些都是值得的。但愿你能喜欢。

参考

Running a notebook server :官方的搭建指南,也是本文的主要素材。

The Jupyter notebook : Jupyter 的官方文档。

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn