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

pipでJupyterHubをインストール

More than 1 year has passed since last update.

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の動作確認

先ずログインします。上記の一般ユーザーのどちらかでログインします。ユーザー名、パスワードともに、デフォルトの認証ではJupyterHubをインストールしたサーバーのユーザー名とパスワードです。
image.png

他のJupyter Notebook環境で作成しておいたノートブック(ipynb形式)のファイルを取り込み、同様の結果が出るか確認します。
image.png

Why do not you register as a user and use Qiita more conveniently?
  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
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