initスクリプトとは何ですか?
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 |
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スクリプトを参照してください。
任意のタイプの initScript を変更するたびに、スクリプトの影響を受けるすべてのクラスターを再起動する必要があります。
グローバル init スクリプトは、クラスター スコープの init スクリプトの前に実行されます。
重要
レガシー グローバルおよびレガシー クラスター名付きの init スクリプトは、他の init スクリプトよりも前に実行されます。 これらの init スクリプトはサポートが終了していますが、2023 年 2 月 21 日より前に作成されたワークスペースには存在する可能性があります。 「クラスター名付き init スクリプト (レガシー)」および 「グローバル init スクリプト (レガシー)」を参照してください。
init スクリプトはどこにインストールできますか?
ワークスペースファイル、 Unity Catalog ボリューム、およびクラウドオブジェクトストレージからinitスクリプトを保存および構成できますが、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 スクリプトをサポートされている場所に移行する必要があります。 init スクリプトをワークスペース ファイルとして、またはクラウドオブジェクトストレージとしてUnity Catalogボリュームに保存します。
DBFSからinitスクリプトを移行する必要があるユーザーは、次のガイドを使用できます。 構成の正しいターゲットを特定したことを確認します。 initスクリプトの推奨事項を参照してください。