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)
Test.png

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”を押して新規ファイルを作成してみる

Home.png

Notebookという名前の通り、試し書き的にコードを書け、1行 = 1つのコードの集まりといった感じで、1行ずつ実行できる。
自分の場合、1行目で必要なライブラリをすべてimportして、autocompleteが効くようにしている。

Test.png

5. Jupyterサーバーに簡単ssh接続

サーバーのポートやユーザーを設定後に、クライアント側でいちいち長いsshコマンドを入力して、リモートと接続するのは面倒なので、ssh jupyterで接続できるようにしておく。

Host jupyter
    HostName        IP_ADDRESS
    Port            SSH_PORT
    IdentityFile    SECRET_KEY
    User            USERNAME
广告
将在 10 秒后关闭
bannerAds