3. ノートブックの運用方法

GridData Analytics Serverはノートブックの操作コマンドを提供します。 また、ノートブックの実行をスケジュールしたり、JupyterのWebアプリケーションとは独立にAPIサーバーを起動することができます。

ここでは、それぞれの利用方法について説明します。

3.1. ノートブック操作コマンド

jupyter nbconvertコマンドを使用し、ノートブックの実行や別の形式への変換ができます。

3.1.1. ノートブックを変換する

ノートブックを別の形式に変換するには、jupyter nbconvertの --to オプションを使用します。

実行例は以下の通りです。

$ jupyter nbconvert --to=python /home/griddata/analytics/sample.ipynb

以下はjupyter nbconvertコマンドの主な仕様です。

オプション 必須 引数 説明
--output filename 出力ファイル名を指定します。
--to format 変換する形式を指定します。指定しない場合はHTML形式になります。

formatに指定できる書式は以下の通りです。

形式 備考
html html形式
latex tex形式
pdf pdf形式
slides reveal.js形式
markdown markdown形式
rst reStructuredText形式
python Pythonコード形式
notebook (別名で保存)

3.1.2. ノートブックをコマンドで実行する

ノートブックをコマンドで実行するには、jupyter nbconvertの --execute オプションを使用します。

実行例は以下の通りです。

$ jupyter nbconvert  --execute --inplace --ExecutePreprocessor.timeout=-1  /home/griddata/analytics/sample.ipynb

jupyter nbconvertコマンドの仕様は以下の通りです。

オプション 必須 説明
--execute なし ノートブックをターミナル上で実行します。
--inplace なし 実行結果をノートブックファイルに上書き保存します。
--ExecutePreprocessor.timeout [-1, None, 正のint値] コマンド実行のタイムアウト値を指定します。単位は秒です。 指定しないと30秒になります。実行に時間がかかるノートブックの場合は-1かNoneを指定すると、タイムアウトが無効になります。

なお、「ノートブックを変換する」と「ノートブックをコマンドで実行する」に記載したオプションは、同時に使用することができます。

組み合わせた場合の例として、ノートブックをコマンドで実行し、htmlに変換する場合の例を以下に示します。

$ jupyter nbconvert --execute --to=html --output=out.html /home/griddata/analytics/sample.ipynb

3.2. ノートブックの実行スケジュールを設定する

ノートブック操作コマンドjupyter nbconvertとcronを組み合わせ、ノートブックの実行スケジュールを設定することができます。設定方法は以下の通りです。

(1)あらかじめcronを開始します。

$ sudo service crond start

(2)実行内容をシェルスクリプトに記述します。

このとき、実行するコマンドや引数のファイルパスは絶対パスで記述します。

$ echo "/home/griddata/analytics/anaconda/bin/jupyter nbconvert --to html /home/griddata/analytics/sample.ipynb --output=/home/griddata/analytics/templates/sample.html" >> /home/griddata/schedule.sh
$ sudo chmod +x schedule.sh

注釈

環境変数を使用したノートブックを起動する場合は、以下の例のようにenvコマンドで環境変数を設定しコマンドを指定します。

$ echo "env LD_LIBRARY_PATH=/home/griddata/analytics/griddb/bin /home/griddata/analytics/anaconda/bin/jupyter nbconvert  --execute /home/griddata/analytics/sample.ipynb --to=html --output=/home/griddata/analytics/templates/sample.html" >> /home/griddata/schedule.sh
$ sudo chmod +x schedule.sh

(3)スクリプトを実行するようにcronを設定します。

以下の例では、1分おきにスクリプトを実行します。

$ echo '*/1 * * * * sh /home/griddata/schedule.sh' > cron.conf
$ crontab cron.conf

3.3. APIサーバーを起動する

GridData Analytics Studioを使用して作成したAPIサーバーのノートブックを、GridData Analytics Server上で起動する方法について説明します。

WebAPIの作成方法については WebAPI作成ライブラリー を参照してください。

(1)作成したノートブックをPythonコードに変換します。

このとき、ノートブックに実行サーバーのホスト名やIPを記載している場合は、該当する記述をGridData Analytics Serverのものに置き換えます。

$ jupyter nbconvert --to=python /home/griddata/analytics/sample.ipynb

(2)作成したPythonコードをバックグラウンドで実行します。

$ nohup python /home/griddata/analytics/sample.py > ~/output.log &

(3)起動中のAPIサーバーを停止するには、killコマンドでプロセスを停止します。

$ ps u
$ kill -KILL <PID番号>