initスクリプトで環境変数を設定して使用する
initスクリプトは、クラスター上に存在するすべての環境変数にアクセスできます。 Databricks 、initスクリプトロジックで役立つ多くのデフォルト変数を設定します。
Spark configで設定した環境変数は、initスクリプトで使用できます。環境変数を参照してください。
デフォルトによって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
: クラスターがジョブを実行するために作成されたかどうか。 「ジョブのコンピュートの設定」を参照してください。
たとえば、スクリプトの一部をドライバーノード上でのみ実行したい場合は、次のようなスクリプトを作成します。
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 構成プロパティまたは環境変数でのシークレットの使用」を参照してください。