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