JupyterNotebookを複数ユーザーで使う

Jupyter Notebookの環境を立てただけでは、複数ユーザーで同時に使用することは困難なので、ユーザー管理機能を追加する「JupyterHub」を用いて、Jupyter Notebookを使用できる環境を作ります。
JupyterHub:https://jupyterhub.readthedocs.io/en/stable/

インストールをAnacondaで行うことを説明している記事が多いので、Anacondaの代わりにpipで実行する方法についてまとめました。
Jupyter Notebookは、Googleアカウントをお持ちであれば、Google Colaboratoryを使うことがとても簡単ですが、Googleアカウントを職場で使用できない場合は、クレジットカード不要で無料で使えるIBM CloudライトアカウントのWatson Studioがあります。他にもAmazon EMRなども….。
GoogleやIBM Cloudなどを使用できない場合は、オンプレミスあるいは、専有型のシングルテナントサーバーをIBM Cloud IaaSなどで確保し、この記事を参考にJupyterHubとJupyter Notebookによる実行環境を構築すると良いでしょう。

想定環境

Virtual Box上に、Ubuntu 16.04 Server環境を用意しました。
Ubuntu 16.04 Server:http://releases.ubuntu.com/16.04/
ホストオンリーアダプタを追加し、IPアドレスとして「192.168.56.10」を割り当てています。

割当CPUは1つで、メモリは2GBです。IBM CloudやIDCFクラウドで仮想サーバーを用意する場合も、小さく始めるので、メモリ2GBあれば良いでしょう。
また、「user」という名称のユーザーを作成済みの状態です。この「user」というユーザーは、JupyterHubの管理者とします。

インストールディレクトリの作成

/opt ディレクトリ以下に、jupyterという名称のディレクトリを作成し、作業します。

sudo mkdir -p /opt/jupyter
cd /opt/jupyter

インストールスクリプト

JupyterHubとJupyter Notebookの両方をインストールします。下記が、インストールスクリプトです。

#!/bin/bash
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install -y build-essential python3-dev python3-setuptools libfreetype6-dev
sudo ln -s /usr/include/freetype2/ft2build.h /usr/include/
sudo easy_install3 pip
sudo pip install numpy scipy matplotlib seaborn scikit-learn pandas psycopg2 ipython-sql pymysql
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo python3 -m pip install jupyterhub
sudo npm install -g configurable-http-proxy
sudo python3 -m pip install notebook
sudo jupyterhub --generate-config
echo "Installed JupyterHub"

適当なディレクトリで、「jupyterhub-install.sh」を作成し、インストールスクリプトをコピー&ペーストし、保存します。ここでは、nanoエディタを使用していますので、Ctrl+xキーを押し、yキーで保存です。

sudo nano jupyterhub-install.sh

前述のインストールスクリプトをコピー&ペースト。jupyterhub-install.shを実行します。

sudo chmod a+x jupyterhub-install.sh
./jupyterhub-install.sh

Ubuntu Serverにユーザー追加

JupyterHubを利用するユーザーは、デフォルトの認証ではインストール先のLinux環境(ここではUbuntu Server)のユーザー情報を使用します。

sudo adduser user1
sudo adduser user2

JupyterHub設定ファイルの編集

/opt/jupyterディレクトリ内の「jupyterhub_config.py」を編集します。

sudo nano /opt/jupyter/jupyterhub_config.py

JupyterHubの管理者について記述します。
#c.JupyterHub.admin_users = set() の直下に、
c.JupyterHub.admin_users = {'user'}
を追記。

JupyterHubの一般ユーザーとして、user1とuser2を記述します。
#c.Authenticator.whitelist = set() の直下に、
c.Authenticator.whitelist = {'user1', 'user2'}
を追記。

#c.JupyterHub.hub_ip = '127.0.0.1' の直下に、
c.JupyterHub.hub_ip = '0.0.0.0'
を追記。

JupyterHubの起動

sudo jupyterhub /opt/jupyter/jupyterhub_config.py &

JupyterHubにログイン

Webブラウザで、http://割当IPアドレス:8000 にアクセスし、下記のユーザーでログインし、Notebookを作成、実行できるかどうか確認します。

    • 管理者:user

 

    一般ユーザー:user1, user2

Notebookの動作確認

image.png
image.png
广告
将在 10 秒后关闭
bannerAds