init スクリプトでの環境変数の設定と使用

Init スクリプトは、クラスターに存在する環境変数にアクセスできます。

Note

このページでは、クラシックコンピュート上のinitスクリプトの環境変数について説明します。 サーバーレスのLakeflow Jobsタスクでアプリケーションコードに環境変数を渡すには 、「サーバーレスジョブのための環境変数の設定」を参照してください。

Note

Databricks Runtime 19 以降の 標準アクセス モード では、init スクリプトで使用できるのは定義済みの環境変数のセットのみです。 クラスターに設定したその他の変数は、UDF を含め、ユーザー コードで引き続き使用できますが、init スクリプトでは使用できません。 環境変数の制限事項を参照してください。

既定の環境変数

Azure Databricksは、init スクリプト ロジックで役立つ多くの既定の変数を設定します。 クラスター スコープおよびグローバルの init スクリプトでは、次の環境変数がサポートされます。

  • DB_CLUSTER_ID: スクリプトが実行されているクラスターの ID。 Clusters API に関するページを参照してください。
  • DB_CONTAINER_IP: Spark が実行されるコンテナーのプライベート IP アドレス。 init スクリプトは、このコンテナー内で実行されます。 Clusters API に関するページを参照してください。
  • DB_IS_DRIVER: スクリプトがドライバー ノードで実行されているかどうかを示します。
  • DB_DRIVER_IP: ドライバー ノードの IP アドレス。
  • DB_INSTANCE_TYPE: ホスト VM のインスタンスの種類。
  • DB_CLUSTER_NAME: スクリプトが実行されているクラスターの名前。
  • DB_IS_JOB_CLUSTER: ジョブを実行するためにクラスターが作成されたかどうかを示します。 「ジョブ用のコンピューティングを構成する」を参照してください。

これらの定義済みの環境変数をオーバーライドすることはできません。

カスタム環境変数を設定する

コンピューティング リソースで実行されている init スクリプト からアクセスできるカスタム環境変数は、Spark 構成で設定できます。 環境変数を参照してください。

spark_env_varsまたはクラスター API の更新 フィールドを使用して環境変数を設定することもできます。

環境変数を使用する

次の例では、既定の環境変数を使用して、ドライバー ノードでのみスクリプトの一部を実行します。

echo $DB_IS_DRIVER
if [[ $DB_IS_DRIVER = "TRUE" ]]; then
  <run this part only on driver>
else
  <run this part only on workers>
fi
<run this part on both driver and workers>

init スクリプトのシークレット

シークレットを参照する場合は、任意の有効な変数名を使用できます。 環境変数で参照されるシークレットへのアクセスは、クラスターを構成したユーザーのアクセス許可によって決まります。 環境変数に格納されているシークレットには、クラスターのすべてのユーザーがアクセスできますが、プレーンテキスト表示から編集されます。

Spark の構成プロパティまたは環境変数のシークレットを使用する」を参照してください。