TL;DR
リモートサーバー(Cent OS 6.8)をJupyter Notebook専用サーバーにしたときのステップを再現してみました。チームで分析専用サーバーとして使え、便利です。
環境
- Cent OS 6.8
- Anaconda (Python 3.5.1)
- Jupyter Notebook (4.1.0)
- Pyenv (20160509-74-ge93ae00)
- Nginx (nginx/1.10.1)
1. Pyenvをインストール
複数のPythonバージョンを簡単にスイッチングできるようにPyenvをインストールする。
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
pyenv -v
でバージョンが表示されたらOK
pyenv 20160509-74-ge93ae00
2. PyenvでAnacondaをインストール
Anacondaは、データ分析系分析ライブラリがたくさん詰まっているディストリビューション。Jupyterもこの中に入ってる。
pyenv update
pyenv install -l // anacondaの最新版を確認
pyenv install anaconda3-4.1.0 // 最新版インストール
pyenv global anaconda3-4.1.0 // デフォルトのPythonがanacondaに切り替わる
ややインストールに時間がかかるが、jupyter --version
でバージョンが表示されたらOK
4.1.0
3. Nginxをインストール
1つのIPを複数のサービスで使うことも考えて、Nginxを使う。
まずは最新Nginxを取得できるようにrepoを登録
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
yumを最新にし、Nginxをインストール
sudo yum update
sudo yum install nginx
nginx -v
でバージョンが表示されたらOK
nginx version: nginx/1.10.1
NginxのJupyter専用設定ファイルjupyter.confを作成する前にincludeしておく
http {
include /etc/nginx/conf.d/jupyter.conf;
}
jupyter.confを作成。9999をListen。
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
proxy_pass http://127.0.0.1:9999;
}
Nginx起動
sudo service nginx start
4. Jupyter 設定
Jupyterの設定ファイルを作成する
jupyter notebook --generate-config
jupyter notebook
コマンドはデフォルトでブラウザが起動する。
起動しないようにしつつ、Notebookが使うデフォルトポートを9999に設定する。
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999
5. いよいよJupyter起動!
入力するのは、これだけ!
jupyter notebook
サーバーのIPにアクセスして、下の画面が出たら起動完了。コマンドを打ったディレクトリのファイル、ディレクトリが表示される。
早速、"New"を押して新規ファイルを作成してみる
Notebookという名前の通り、試し書き的にコードを書け、1行 = 1つのコードの集まりといった感じで、1行ずつ実行できる。
自分の場合、1行目で必要なライブラリをすべてimportして、autocompleteが効くようにしている。
5. Jupyterサーバーに簡単ssh接続
サーバーのポートやユーザーを設定後に、クライアント側でいちいち長いsshコマンドを入力して、リモートと接続するのは面倒なので、ssh jupyter
で接続できるようにしておく。
Host jupyter
HostName IP_ADDRESS
Port SSH_PORT
IdentityFile SECRET_KEY
User USERNAME