これはなに?
Databricksを利用して分析を進めていくと必要なライブラリが多くなり、起動が遅くなることがあります。起動を早くする方法があるので、Tipsとして記載します。
起動を早くする方法
結論から言うとライブラリ導入済みのDockerから起動することです。
手順はMSがきれいにまとめてくれているので、そちら参照ください。
Databricks Container Services を使用してコンテナーをカスタマイズする - Azure Databricks | Microsoft Docs
DataBricksのイメージから起動する場合、ライブラリのインストールが毎回クラスターの起動時に走ります。そのため、重いライブラリが増えるとどんどん起動時間が長くなります。
そこで予めDockerのコンテナにライブラリを入れておくことで、インストールの時間を省略できるため、起動時間を最低限に抑えることができます。
DataBricks側の設定例
Azure Container Registoryを利用した場合は、以下のような設定になります。
起動時間比較
イメージから起動した場合とコンテナから起動した場合の時間を比較してみます。
入っているライブラリによって起動時間は変わるのであくまで参考としてください。
以下のライブラリを入れたクラスターを起動します。
- scikit-learn
- tensorflow
- tensorflow_hub
- tensorflow_text
起動時間比較表
# | イメージ | コンテナ |
---|---|---|
1回目 | 13分30秒 | 4分10秒 |
2回目 | 13分11秒 | 1分40秒 |
3回目 | 14分40秒 | 4分10秒 |
当たり前ですが、コンテナのほうがすべて早く起動してきました。コンテナの2回目がかなり早いスピードで上がってきたのは、Docker PULLのところでキャッシュが聞いたからかなと思っています。長いこと停止しているとキャッシュも消えると思うので、だいたい5分くらいの起動時間になると思っておくとよいかなと思いました。
以上となります。