クラスタースコープの initスクリプトを使用する
クラスタースコープの initスクリプトは、クラスター構成で定義された initスクリプトです。 クラスタースコープの initScript は、作成するクラスターとジョブを実行するために作成されたクラスターの両方に適用されます。
クラスター スコープの init スクリプトは、UI、CLI、およびクラスター API を呼び出すことで構成できます。 このセクションでは、UI を使用してこれらのタスクを実行することに焦点を当てます。 その他の方法については、 Databricks CLI と クラスター API を参照してください。
スクリプトはいくつでも追加でき、スクリプトは指定された順序で順番に実行されます。
クラスタースコープの initスクリプトが 0 以外の終了コードを返すと、クラスターの起動 は失敗します。 クラスター スコープの init スクリプトのトラブルシューティングを行うには、クラスター ログ の配信 を構成し、initスクリプト ログを調べます。 initスクリプトのロギングを参照してください。
UIを使用したクラスタースコープの initスクリプトの構成
このセクションには、Databricks UI を使用して init スクリプトを実行するようにクラスターを構成する手順が含まれています。
Databricks では、すべての initスクリプトをクラスター スコープの initスクリプトとして管理することをお勧めします。 共有またはシングル ユーザー アクセス モードでコンピュートを使用している場合は、Unity Catalog ボリュームに initscript を格納します。 分離なしの共有アクセス モードでコンピュートを使用している場合は、initスクリプトにワークスペース ファイルを使用します。
共有アクセス モードの場合は、 allowlist
に initスクリプト を追加する必要があります。 共有コンピュートの許可リストライブラリとinitスクリプトを参照してください。
UI を使用して initScript を実行するようにクラスターを構成するには、以下のステップを実行します。
クラスター構成ページで、[ 詳細オプション ] トグルをクリックします。
ページの下部にある [initスクリプト ] タブをクリックします。
[ ソース ] ドロップダウンで、ソースの種類として [ ワークスペース]、[ ボリューム]、または [GS ] を選択します。
次の例のように、initスクリプトへのパスを指定します。
ワークスペースファイルとともにホームディレクトリに格納されているinitスクリプトの場合:
/Users/<user-name>/<script-name>.sh
.Unity Catalog ボリュームとともに格納されている initスクリプトの場合:
/Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh
。オブジェクトストレージとともに格納されたinitスクリプトの場合:
gs://bucket-name/path/to/init-script
.
[追加] をクリックします。
シングル・ユーザー・アクセス・モードでは、割り当てられたプリンシパルの ID (ユーザーまたはサービスプリンシパル) が使用されます。
分離されていない共有アクセス モードでは、クラスター所有者の ID が使用されます。
クラスター構成からスクリプトを削除するには、スクリプトの右側にあるごみ箱アイコンをクリックします。 削除を確認すると、クラスターを再起動するように求められます。 必要に応じて、アップロードした場所からスクリプト ファイルを削除できます。
注
GS ソースタイプを使用して init スクリプトを構成する場合は、アクセス資格情報を構成する必要があります。
Databricks では、Google クラウド サービス アカウントを使用して、GCS に保存されている initscript へのアクセスを管理することを推奨しています。 目的のバケットの Storage Object Viewer ロールを持つGoogleクラウドサービスアカウントを作成し、クラスターにアタッチします。 クラスターで Google クラウドのサービスアカウントを使用して GCS バケットにアクセスする を参照してください。
警告
DBFS 上のクラスター スコープの initスクリプトはサポートが終了しています。 UI の DBFS オプションは、レガシ ワークロードをサポートするために一部のワークスペースに存在しますが、推奨されません。 DBFS に格納されているすべての initスクリプトを移行する必要があります。 移行手順については、「 DBFS からの init スクリプトの移行」を参照してください。