雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

Databricks クラスターの起動を早くする方法

これはなに?

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分くらいの起動時間になると思っておくとよいかなと思いました。

以上となります。