2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DatabricksにおけるDBFSのinitスクリプトは2023/9/1にEnd of Serviceになります

Last updated at Posted at 2023-07-10

以下はDatabricksサポートからのメールの翻訳です。

Databricksでは、以前DBFS(Databricksファイルシステム)に格納されたinitスクリプトを非推奨とすることを発表しました。DBFSに格納されたinitスクリプトでは既知のセキュリティの影響があります。DBFSに格納されたinitスクリプトを使用しているのであれば、より強力なセキュリティ保証とユーザー分離を提供するワークスペースファイル上のinitスクリプトにすぐに移行してください。

2023/9/1にDBFSのinitスクリプトのサポートはエンドオブライフとなり、この日以降はこの機能は動作しなくなります。

2023/9/1以降にクラスターやジョブが動作し続けるようにするには、以下のアクションを取らなくてはなりません:

さらに

initスクリプトの詳細については、こちらのinitスクリプトのドキュメントをご覧ください。

さらにご質問があるのであれば、help@databricks.com にお問い合わせください。

Thanks,
Databricks Support

訳者補足

Databricksには、クラスター起動時にスクリプトを実行するためのinitスクリプトの機能がありますが、これにはいくつかの種類があります。

  1. レガシーグローバルinitスクリプト(legacy global init script)
  2. グローバルinitスクリプト(global init script)
  3. クラスターネームドinitスクリプト(Cluster-named init script)
  4. クラスタースコープinitスクリプト(Cluster-scoped init script)

グローバルinitスクリプトはワークスペースのすべてのクラスターで動作するinitスクリプトであり、クラスターネームドinitスクリプトやクラスタースコープinitスクリプトは個々のクラスターで動作するinitスクリプトです。

1はすでに非推奨になっているので、仮に使っているのであれば、すぐにグローバルinitスクリプトに移行してください。そして、3もすでに非推奨になっていますので、仮に使っているのであればこちらもすぐにクラスタースコープinitスクリプトに移行してください。

冒頭のメールは上のリストの 4. クラスタースコープinitスクリプト(Cluster-scoped init script) が対象です。

これまで、このクラスタースコープinitスクリプトの保管場所は、DBFS(Databricksファイルシステム)でしたが、これが2023/9/1に非推奨になるのでクラウドオブジェクトストレージ(S3/ADLS/GCS)あるいはワークスペースファイルに格納していただく必要があります。

以下では確認手順、移行手順を説明します。

ワークスペースで稼働しているクラスターが少ない場合

目視でクラスター設定を確認します。作成済みのクラスターにアクセスし、高度なオプション -> initスクリプトで設定されたものが無ければ、
initスクリプトは使用されていないと言えます。
Screenshot 2023-07-10 at 18.32.04.png

逆にタイプDBFSのinitスクリプトが設定されている場合には移行が必要です。
Screenshot 2023-07-11 at 8.55.05.png

手動で移行するには、DBFSに格納されているinitスクリプトの中身をコピーして、ワークスペース上のファイルとして作成し、initスクリプトとして参照するようにクラスターを設定しなおします。手順はこちらをご覧ください。

ワークスペースで稼働しているクラスターが多い場合

移行ノートブックをお使いください。

準備

  1. ワークスペース管理者のパーソナルアクセストークンを取得します。

  2. ローカルマシンでDatabricks CLIを用いて、Databricksシークレットにパーソナルアクセストークンを登録します。以下の例ではシークレットスコープmy_scope、キーdb_tokenにパーソナルアクセストークンを登録しています。

    databricks secrets create-scope --scope my_scope
    
    databricks secrets put --scope my_scope --key db_token
    

ノートブックのドライラン

このノートブックはDBFS上のクラスタースコープスクリプトを、ワークスペースファイルとしてクラスタースコープinitスクリプトとして保存します。レガシーなクラスターネームドのinitスクリプトは無効化されます。

警告
このノートブックを実行すると、変更されたすべてのクラスターを再起動する場合があります。恒久的な変更を行うことなしに、どのような変更が行われるのかを確認するためにDry runオプションを使ってください。

このスクリプトは特定のDatabricksランタイムバージョンに依存しません。コントロールプレーンに対するAPI呼び出しのみを行います。

最初にノートブックの最後のセルを実行するとエラーメッセージが表示されますが、画面の上部にウィジェットが表示されます。
Screenshot 2023-07-11 at 9.04.14.png

このScope NameSecret Nameに、上で設定したシークレットスコープ名とキー名を入力します。そして、一番左のDry RunTrueになっていることを確認して、再度最後のセルを実行します。
Screenshot 2023-07-11 at 9.06.42.png

移行対象のinitスクリプトがない場合には、No...init scripts foundNo change in configurationのようなメッセージが表示されます。

GETting https://xxxx.cloud.databricks.com/api/2.0/clusters/list
Cluster "Takaaki Yayoi's Personal Compute Cluster": No named init scripts found in dbfs:/databricks/init/Takaaki Yayoi's Personal Compute Cluster
Cluster "Takaaki Yayoi's Personal Compute Cluster": No change in configuration
GETting https://tydatabricks-tydb-test-environment.cloud.databricks.com/api/2.1/jobs/list?expand_tasks=true
Workspace: Disabling cluster-named init scripts
Dry run: Would PATCH https://xxxx.cloud.databricks.com/api/2.0/workspace-conf:
{"enableDeprecatedClusterNamedInitScripts": "false"}
...Error 202

移行対象のinitスクリプトがある場合には、移行先含めてメッセージが表示されます。

GETting https://xxx.cloud.databricks.com/api/2.0/clusters/list
Cluster "Takaaki Yayoi's Personal Compute Cluster": No named init scripts found in dbfs:/databricks/init/Takaaki Yayoi's Personal Compute Cluster
Scripts to update: ['dbfs:/databricks/scripts/librosa_init_script.sh']
Dry run: Would POST {'path': "/init-scripts/Takaaki Yayoi's Personal Compute Cluster"} to https://xxx.cloud.databricks.com/api/2.0/workspace/mkdirs

移行スクリプトの実行

ウィジェットのDry RunFalseに変更すると、更新処理が実行されます。initスクリプトが移行され、クラスターの設定も更新されt再起動されます。
Screenshot 2023-07-11 at 9.24.24.png
Screenshot 2023-07-11 at 9.23.39.png

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?