RasberryPiでJupyterLabサーバーを立てる

データの管理から分析まで1台のサーバー内で行える環境を整えるため、RaspberryPiにJupyterLabをインストールして、serviceとして自動起動させる環境を作りました。その過程を記事に残しておきます。

目的

RaspberryPiでJupyterLabをservice化させ、デスクトップ環境からリモートで接続できる環境を作る。 普段データ分析の勉強をしている際JupyterLabを使用しているのですが、デスクトップpcとノートpcのどちらでも同じ作業ができる環境がほしかったので、RaspberryPiでJupyterLabサーバーを立ち上げることにしました。

環境

実行環境

  • RaspberryPi3
  • centos-rpi3
  • Python 3.6.5
  • pip 18.1
  • IP: 192.168.0.2
  • ユーザー名: test

JupyterLabとは

JupyterLabは、Pythonのデータ分析環境として使用されてきたJupyter notebookの正式後継として、2018年にリリースされたものです。notebookに比べてインターフェースが強化されており、1つのブラウザタブ内で複数のファイルを並列に開いておくことができる点が便利になっています。

インストール

pipでJupyterLabをインストール。

$ sudo pip install jupyterlab

実行とリモート接続許可の方法

ローカル環境で起動する場合は

$ jupyter lab

とシェルで実行すれば大丈夫。 リモートからの接続を許可する場合は

jupyter lab --ip=0.0.0.0 --no-browser

で実行します。これを利用して自動化します。

JupyterLabのサービス化

serviceファイルを作成して、systemdで自動起動設定を行っていきます。

リモート接続用設定ファイル

上のリモート接続許可のコマンドをもとにserviceファイルを作成しようとしたところ、実行できなかったため、まずは.jupyterディレクトリでリモート許可の設定を書き込んでおきます。

このファイルを/home/test/.jupyter/ディレクトリ内に入れておきます。

$ cp jupyter_notebook_config.py /home/test/.jupyter/

serviceファイル

service化するためのファイルを作成します。

このファイルを/etc/systemd/system/内にコピーします。

$ sudo cp jupyter.service /etc/systemd/system/

サービス自動起動設定

先ほど設定したサービスを起動します。

$ sudo systemctl start jupyter

サービスの自動起動を有効化します。

$ sudo systemctl enable jupyter

これによりラズパイの起動とともにJupyterLabサービスも起動するようになりました。

リモート接続確認

リモートのデスクトップ環境から、ラズパイの先ほど立ち上げたサービスへ接続します。 接続するときはブラウザから

192.168.0.2:8888/?token=jupyter

と入力します。画像のようにJupyterLabのインターフェースが立ち上がりました。

まとめ

今回はラズパイでJupyterLabをリモート接続可能な設定で起動、サービスの自動起動設定まで行いました。 まとめると、

  • jupyter_notebook_config、.jupyter内設定ファイルの作成
  • jupyter.service、サービス化用のファイル作成
  • サービスの起動、自動起動有効化

となります。

コメント