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