initスクリプトとは何ですか?

init スクリプト (初期化スクリプト) は、Apache Spark ドライバーまたはエグゼキューター JVM が起動する前に、各クラスター ノードの起動中に実行されるシェル スクリプトです。 この記事では、init スクリプトと構成情報を使用する必要がある場合の推奨事項を示します。

initスクリプトの推奨事項

Databricks では、可能な限り init スクリプトの代わりに組み込みのプラットフォーム機能を使用することをお勧めします。 init スクリプトが広く使用されていると、新しいDatabricks Runtimeバージョンへの移行が遅くなり、一部の Databricks 最適化の導入が妨げられる可能性があります。

重要

DBFS の init スクリプトから移行する必要がある場合は、「 DBFS からの init スクリプトの移行」を参照してください。

たとえば、Databricks では、コンピュート ポリシーを使用して、システム プロパティ、環境変数、Spark 構成パラメーターを設定することをお勧めします。 コンピュート・ポリシー・リファレンスを参照してください。

init スクリプトを使用する必要がある場合:

  • グローバル init スクリプトではなく、コンピュート ポリシーまたはクラスター スコープの init スクリプトを使用して init スクリプトを管理します。 init スクリプトのタイプ を参照してください。

  • コンピュート ポリシーを使用して、本番運用およびインタラクティブ環境のライブラリのインストールを管理します。 init スクリプトを使用してライブラリをインストールしないでください。

  • すべてのワークロードに共有アクセス モードを使用します。 シングル・ユーザー・アクセス・モードは、共有アクセス・モードで必要な機能がサポートされていない場合にのみ使用してください。

  • すべてのワークロードに新しい Databricks Runtime バージョンと Unity Catalog を使用します。

次の表に、 Databricks RuntimeバージョンとUnity Catalog有効化ごとにまとめた推奨事項を示します。

環境

推奨事項

Databricks Runtime 13.3 LTS 以降と Unity Catalog。

initスクリプトを Unity Catalog ボリュームに格納します

Unity Catalog を使用しないワークロードで、initスクリプトが他のファイルを参照しない。

init スクリプトをワークスペース ファイルとして保存します。 (ファイルサイズの上限は500MBです。

Unity Catalog を使用しないワークロードで、init スクリプトがライブラリ、構成ファイル、シェル スクリプトなどの他のファイルを参照する。

クラウド・オブジェクト・ストレージを使用して initスクリプトを保管します。

Databricks ではどのような種類の initスクリプトがサポートされていますか?

Databricks は、クラスター スコープとグローバルの 2 種類の init スクリプトをサポートしていますが、クラスター スコープの init スクリプトを使用することをお勧めします。

  • クラスター スコープ: スクリプトで構成されたすべてのクラスターで実行されます。 これは、initスクリプトを実行するための推奨される方法です。 「 クラスター スコープの initスクリプトを使用する」を参照してください。

  • グローバル: シングル ユーザー アクセス モードまたは非分離共有アクセス モードで構成されたワークスペース内のすべてのクラスターで実行します。 これらの init スクリプトは、ライブラリの競合などの予期しない問題を引き起こす可能性があります。 ワークスペース管理者ユーザーのみがグローバル init スクリプトを作成できます。 「グローバル init スクリプトの使用」を参照してください。

任意のタイプの initScript を変更するたびに、スクリプトの影響を受けるすべてのクラスターを再起動する必要があります。

グローバル init スクリプトは、クラスター スコープの init スクリプトの前に実行されます。

init スクリプトはどこにインストールできますか?

init スクリプトはワークスペース ファイル、 Unity Catalogボリューム、およびクラウド オブジェクト ストレージから保存して構成できますが、init スクリプトはすべてのクラスター構成でサポートされているわけではなく、すべてのファイルが init スクリプトから参照できるわけではありません。

次の表は、ソースの場所とクラスターのアクセス モードに基づいた init スクリプトのサポートを示しています。 リストされている Databricks Runtime バージョンは、この組み合わせを使用するために必要な最小バージョンです。 クラスターのアクセス モードについては、 「アクセス モード」を参照してください。

注:

共有アクセス モードでは、管理者が init スクリプトをallowlistに追加する必要があります。 共有コンピュートの許可リスト ライブラリと init スクリプトを参照してください。

共有アクセスモード

シングル・アクセス・モード

分離なしの共有アクセス モード

ワークスペースファイル

サポートされていない

サポートされているすべてのDatabricks Runtimeバージョン

サポートされているすべての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スクリプトの推奨事項を参照してください。