リモートにあるデータをJupyter Notebookで扱うには
シミュレーションをリモートサーバーで行なった場合はデータをリモートサーバー先に置いたまま解析を行うのが自然だが、できればインタラクティブに解析がしたいと思うものである。最近はpythonでのデータ分析が容易であるからここではJupyter Notebookをリモートで行う方法を紹介する。主な方法として次のものがある。
- SSH Port Forwardingをもちいる方法
- sshfsでリモート先のディレクトリをmountして、ローカルでmountしたファイルを扱う方法
- X Window を転送して利用する方法
ここでは2のsshfsをもちいる方法について紹介する。この方法はローカルにいながらリモート先のファイルを触ることができる方法である。
1と3はリモート先のマシンを用いて解析するのに対して、2はローカルPCで解析をすることになるため基本的には1の方法が良いと考えられる。しかし1はリモートサーバーのsshd_configのAllowTcpForwardingの設定が許可されていなければ使えない。3はsshでログインする際に -X のオプションを使えばリモート先のディスプレイをローカルで見られるがレスポンスが遅い。
sshfsのインストール
ここではmacOSでHomebrewを用いたインストールを紹介する。次のようにHomebrewで「osxfuse」と「sshfs」をインストールする。
$ brew install osxfuse $ brew install sshfs
マウントとアンマウント
ターミナル上で次のコマンドを用いる。
# マウント(ローカルに作ったマウントディレクトリをマウントする) $ sshfs {ユーザー}@{サーバー名}:{リモート先のディレクトリ} {ローカルのマウントディレクトリ} # アンマウント(次のコマンドはmacOSのみ。Linuxはfusermountコマンド。) $ umount -f {ローカルのマウントディレクトリ}
マウントされたローカルのディレクトリが、リモート先のディレクトリと同じ構成になるので、あとはそのファイルをJupyter Notebookでひらけば良い。