メインコンテンツまでスキップ

initスクリプトで環境変数を設定して使用する

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

デフォルトの環境変数

Databricks 、initスクリプトロジックで役立つ多くのデフォルト変数を設定します。 クラスタスコープおよびグローバルinitスクリプトは、以下の環境変数をサポートしています。

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

これらの定義済み環境変数を上書きすることはできません。

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

コンピュート リソース上で実行されるinit スクリプトからアクセスできるカスタム環境変数は、 Spark config で設定できます。 See 環境変数.

Create cluster APIまたはUpdate cluster APIspark_env_varsフィールドを使用して環境変数を設定することもできます。

環境変数を使用する

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

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