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形式 | |
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番号>