initスクリプトとは何ですか?
initスクリプト(初期化スクリプト)は、 Apache Spark ドライバやエグゼキューター JVM が起動する前の各クラスターノードの起動時に実行するシェルスクリプトです。 この記事では、initスクリプトと設定情報を使用する必要がある場合の推奨事項を提供します。
initスクリプトの推奨事項
Databricks 可能な限り、initスクリプトの代わりに組み込みプラットフォーム機能を使用することをお勧めします。 initスクリプトを広く使用すると、新しい Databricks Runtime バージョンへの移行が遅くなり、一部の Databricks 最適化の採用が妨げられる可能性があります。
DBFSで initスクリプトから移行する必要がある場合は、 DBFSから initスクリプトを移行する を参照してください。
次の Databricks 機能は、initスクリプトの一般的な使用例の一部に対応しています。
- コンピュート ポリシーを使用して、システム・プロパティー、環境変数、および Spark 構成パラメーターを設定します。 「コンピュート ポリシー リファレンス」を参照してください。
- クラスターポリシーにライブラリを追加します。 ポリシーへのライブラリの追加を参照してください。
initスクリプトを使用する必要がある場合:
- initスクリプトは、global initスクリプトではなく、コンピュート ポリシーまたはクラスタースコープのinitスクリプトを使用して管理します。 initスクリプトのタイプを参照してください。
- コンピュート ポリシーを使用して、本番運用環境と対話型環境のライブラリ インストールを管理します。 initスクリプトを使用してライブラリをインストールしないでください。
- すべてのワークロードに標準アクセス モード (以前の共有アクセス モード) を使用します。 専用アクセスモード (旧称シングルユーザーアクセスモード) は、必要な機能が標準アクセスモードでサポートされていない場合にのみ使用してください。
- すべてのワークロードに新しい Databricks Runtime バージョンと Unity Catalog を使用します。
次の表は、Databricks Runtime のバージョンと Unity Catalog の有効化別に整理された推奨事項を示しています。
環境 | 推奨事項 |
---|---|
Databricks Runtime 13.3 LTS 以降と Unity Catalog | initスクリプトをUnity Catalogボリュームに格納します。 |
Databricks Runtime 11.3 LTS 以降 (Unity Catalog なし) | initスクリプトを ワークスペースファイルとして保存します。 (ファイルサイズの上限は500MBです)。 |
Databricks Runtime 10.4 LTS 以下 | クラウドオブジェクトストレージを使用してinitスクリプトを保存します。 |
Databricksはどのタイプのinitスクリプトをサポートしていますか?
Databricks は、クラスタースコープとグローバルの2種類のinitスクリプトをサポートしていますが、クラスタースコープのinitスクリプトを使用することをお勧めします。
- クラスタースコープ: スクリプトで構成されたすべてのクラスターで実行します。 これは、initスクリプトを実行するための推奨される方法です。 クラスター-scoped initスクリプトを参照してください。
- グローバル : 専用アクセス モードまたは分離なし共有アクセス モードで構成されたワークスペース内のすべてのクラスターで実行されます。 これらのinitスクリプトは、ライブラリの競合などの予期しない問題を引き起こす可能性があります。 グローバルinitスクリプトを作成できるのは、ワークスペース管理者ユーザーのみです。 Global initスクリプトを参照してください。
いずれかのタイプのinitスクリプトを変更する場合は、そのスクリプトの影響を受けるすべてのクラスターを再起動する必要があります。
Global initスクリプト run before cluster-scoped initスクリプト.
レガシーグローバルおよびレガシークラスターという名前のinitスクリプトは、他のinitスクリプトの前に実行されます。 これらの initスクリプトはサポートが終了していますが、2023 年 2 月 21 日より前に作成されたワークスペースに存在する可能性があります。 クラスター-named initスクリプト (legacy)およびGlobal initスクリプト (legacy)を参照してください。
initスクリプトはどこにインストールできますか?
ワークスペースファイル、 Unity Catalog ボリューム、およびクラウドオブジェクトストレージからinitスクリプトを保存および構成できますが、initスクリプトはすべてのクラスター構成でサポートされているわけではなく、すべてのファイルをinitスクリプトから参照できるわけではありません。 initスクリプトの環境に関する推奨事項については、 initスクリプトの推奨事項を参照してください。
次の表は、ソースの場所とクラスターアクセスモードに基づくinitスクリプトのサポートを示しています。 一覧表示されている Databricks Runtime バージョンは、組み合わせを使用するために必要な最小バージョンです。 クラスター アクセス モードに関する情報については、「 アクセス モード」を参照してください。
標準アクセスモードでは、管理者がinitスクリプトを allowlist
に追加する必要があります。 Allowlist ライブラリと initスクリプト on 標準アクセスモード (旧称 Shared Access Mode) のコンピュートを参照してください。
標準アクセスモード | シングルアクセスモード | 非分離共有アクセス モード | |
---|---|---|---|
ワークスペース ファイル | サポートされていない | サポートされているすべての Databricks Runtime バージョン。 11.3 LTSより前のバージョンでは、他のワークスペースファイルを参照する initスクリプトはサポートされていません。 | サポートされているすべての Databricks Runtime バージョン。 |
ボリューム | 13.3 LTS以上 | 13.3 LTS以上 | サポートされていない |
クラウドストレージ | 13.3 LTS以上 | サポートされているすべての Databricks Runtime バージョン | サポートされているすべての Databricks Runtime バージョン |
DBFSからのinitスクリプトの移行
DBFSの init スクリプトはサポートが終了したため、使用できなくなりました。 コンピュートを開始する前に、init スクリプトをサポートされている場所に移行する必要があります。 init スクリプトをワークスペース ファイルとして、またはクラウドオブジェクトストレージとしてUnity Catalogボリュームに保存します。
DBFSからinitスクリプトを移行する必要があるユーザーは、以下のガイドを使用できます。構成の正しいターゲットを特定していることを確認します。 「initスクリプトの推奨事項」を参照してください。