はじめに
Jupyterをマルチユーザーで使えるようにするJupyterHub、
画面分割などの拡張が使えるようになるJupyterLab
これらを組み合わせたJupyterLab-Hubを用いて、社内の分析環境を構築した.
導入の利点
JupyterNotebookだけでは個人で環境を作る必要があり、複数人での分析環境の共有が難しい面がある.
JupyterLab-Hubを用いることで
- 複数人での環境共有
- リッチなGUIのIDE導入
- 新規メンバーの導入
を簡易化をすることができる.
以降設定方法を箇条書きで書き連ねていく.
導入環境
- OS:CentOS7
- Anaconda(4.2.0)
- Python3
作業目次
Anaconda,JupyterHubのインストール
$ wget https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh
# インストールフォルダを聞かれるので/opt/anaconda3 など 誰でもアクセスできるところにインストール
$ bash Anaconda3-4.2.0-Linux-x86_64.sh
# secure_pathに/(anacondaのインストール先)/binを追加
$ sudo visudo
(参考 Anaconda3のダウンロード:https://www.anaconda.com/download/)
システム全体でanacondaのpythonを使えるようにしたいので以下を記入(ファイルがなければ作る)
export PATH=/opt/anaconda3/bin:$PATH
$ conda install -c conda-forge jupyterhub
$ conda install notebook
# この後の実行でImportErrorが出るようなら適宜install
$ npm install -g configurable-http-proxy
$ pip install git+https://github.com/jupyter/sudospawner
JupyterHubのConfig
# (Anacondaのinstallディレクトリで)
$ sudo jupyterhub --generate-config
続いてエディタで jupyterhub_config.py を開き、以下のように書き換え,追記
# 各ユーザーのhome直下のnotebookディレクトリを参照するため
c.Spawner.notebook_dir = '~/notebook'
# 使用ユーザーをホワイトリストに追加
c.Authenticator.whitelist = {'user01', 'user02'}
# admin権限を持つユーザーを追加
c.Authenticator.admin_users = {'user00'}
※各ユーザーhome直下の~/notebookは利用前にmkdir等で作成しておくこと
(参考 JupyterHubの構築:https://qiita.com/cvusk/items/afa46c35d8d5f0d930ed)
JupyterLab-Hubを導入
$ sudo conda install -c conda-forge jupyterlab
$ jupyter labextension install @jupyterlab/hub-extension
defaultでlabを使うために以下を記入
c.Spawner.default_url = '/lab'
service化
(CentOSの場合、他OSの場合には参考先参照)
/lib/systemd/system/jupyterhub.serviceに以下を記入
[Unit]
Description=Jupyterhub
[Service]
User=jupyterhub
ExecStart=/usr/bin/jupyterhub --JupyterHub.spawner_class=sudospawner.SudoSpawner
WorkingDirectory=/etc/jupyterhub
[Install]
WantedBy=multi-user.target
# serviceの起動
$ sudo systemctl start jupyterhub
(参考 Run jupyterhub as a system service:https://github.com/jupyterhub/jupyterhub/wiki/Run-jupyterhub-as-a-system-service)
その他参考サイト
https://github.com/jupyterlab/jupyterlab
https://github.com/jupyterhub/jupyterhub
https://github.com/jupyterhub/jupyterlab-hub
宣伝
JupyterLabでPlotlyのグラフを表示させる
https://qiita.com/hasoya/items/0e4d260592dcc36285f2