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

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

initスクリプトの推奨事項

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

重要

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

次の Databricks 機能は、initスクリプトの一般的なユース ケースのいくつかに対応しています。

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

  • グローバル init スクリプトではなく、コンピュート ポリシーまたはクラスター スコープの 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スクリプトを実行するための推奨される方法です。 「 クラスター スコープの initスクリプトを使用する」を参照してください。

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

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

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

重要

レガシー グローバルおよびレガシー クラスター名付きの init スクリプトは、他の init スクリプトよりも前に実行されます。 これらの init スクリプトはサポートが終了していますが、2023 年 2 月 21 日より前に作成されたワークスペースには存在する可能性があります。 「クラスター名付き 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スクリプトの推奨事項を参照してください。