Legacy global init script migration notebook - Databricks [2023/3/30時点]の翻訳(一部加筆)です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
2023/9/1、Databricksはすべてのワークスペースにおいてレガシーグローバルinitスクリプトを無効にします。このタイプのinitスクリプトは2020年に非推奨となっており、2023/9/1以降は利用できません。レガシーグローバルinitスクリプトは、2020年により信頼性のある現行のグローバルinitスクリプトフレームワークで置き換えており、こちらは継続してサポートされます。
可能な限りすぐにレガシーグローバルinitスクリプトを現行のグローバルinitスクリプトに移行することをお勧めします。
ドキュメント(AWS | Azure)に従ううか、以下の手順を参考にして手動でレガシーグローバルinitスクリプトと新しいグローバルinitスクリプトに移行することができます。あるいは、移行プロセスを自動化を支援するノートブックを、Databricksエンジニアリングで作成しています。
本書はGCPワークスペースには適用されません。GCPワークスペースでレガシーグローバルinitスクリプトを使用することはできません。
手動での移行手順
Migrate from legacy to new global init scriptsの翻訳です。
レガシーグローバルinitスクリプトを新たなグローバルinitスクリプトに移行するには:
-
既存のレガシーグローバルinitスクリプトをコピーし、UIあるいはREST APIを用いて新たなグローバルinitスクリプトフレームワークに追加します。
次のステップを完了するまで、これらを無効化しておいてください。
-
すべてのレガシーグローバルinitスクリプトを無効化します。
Admin ConsoleでGlobal Init Scriptsタブに移動し、Legacy Global Init Scriptsのトグルをオフにします。
-
新たなグローバルinitスクリプトを有効化します。
Global Init Scriptsタブで、有効化したいinitスクリプトのEnabledトグルを切り替えます。 -
すべてのクラスターを再起動します。
- レガシーなスクリプトは、稼働中のクラスターで自動でスケールアップされた新規ノードでは実行されません。これらの新規ノードでは新たなグローバルinitスクリプトも実行されません。新規スクリプトが実行されるように、そして、既存のクラスターがグローバルスクリプトなしに新規ノードを追加しないように、すべてのクラスターを再起動しなくてはなりません。
- 新たなグローバルinitスクリプトフレームワークに移行し、レガシースクリプトを無効化する際、非冪等性なスクリプトを修正する必要があるかもしれません。
ノートブック実行手順
警告
移行ノートブックを実行するにはDatabricks管理者である必要があります。
前提条件
移行ノートブックを実行する前に、お使いのパーソナルアクセストークンを格納するスコープとシークレットを作成しておく必要があります。
詳細については、Create a Databricks-backed secret scope(AWS | Azure)とCreate a secret in a Databricks-backed scope(AWS | Azure)のドキュメントをご覧ください。
ドライランの実行
ドライランを実行することで、変更を引き起こすことなしにワークスペースで移行ノートブックをテストすることができます。
- Migrate legacy global init scripts notebookをダウンロードします。
- ワークスペースにノートブックをインポートします。
- クラスターを起動します
- ノートブックを実行します。
- ノートブックを実行するとUIが表示されます。適切なフィールドにScope NameとSecret Nameを入力します。
- 設定を更新後、2回目のノートブックの実行を行います。
エラーが出なければ、レガシーグローバルinitスクリプトの移行の準備が整ったこととなります。
レガシーグローバルinitスクリプトの移行
システムに変更を行う前は常にドライランを実行すべきです。
- Migrate legacy global init scriptsノートブックを実行します。
- ノートブックを実行するとUIが表示されます。適切なフィールドにScope NameとSecret Nameを入力します。
- Dry RunドロップダウンメニューでFalseを選択します。これによって、ノートブックがワークスペースに変更を加えるようになります。
- Enable New ScriptsをTrueに設定します。これによって、ワークスペースで現行のグローバルinitスクリプトを有効化します。スクリプトを移行したいが有効化したく無い場合にはFalseを選択します。
- Remove Old ScriptsをTrueに設定します。これによって、レガシーグローバルinitスクリプトを削除します。
-
Revert ChangesでFalseを選択します。特定の理由で変更を取りやめる必要がある場合にのみTrueを選択します。
- 設定を更新後、ノートブックを再度実行します。
移行されたスクリプトの検証
- Admin Consoleを開きます。
- Global init scriptsをクリックします。
- すべてのレガシーグローバルinitスクリプトが存在することを確認します。
- それぞれのスクリプトのオンオフを切り替えるために、Enabledトグルを切り替えます。
- スクリプトの実行順を変更するにはEdit orderingをクリックします。
- クラスターを再起動し、スクリプトが期待通り実行されることを確認します。