Help us understand the problem. What is going on with this article?

<Python> Jupyter Notebook データ分析専用サーバーを構築する

More than 3 years have passed since last update.

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を登録

/etc/yum.repos.d/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しておく

/etc/nginx/nginx.conf
http {
  include /etc/nginx/conf.d/jupyter.conf;
}

jupyter.confを作成。9999をListen。

/etc/nginx/conf.d/jupyter.conf
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に設定する。

jupyter/jupyter_notebook_config.py
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で接続できるようにしておく。

~/.ssh/config
Host jupyter
    HostName        IP_ADDRESS
    Port            SSH_PORT
    IdentityFile    SECRET_KEY
    User            USERNAME
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした