設定及使用環境變數與 init 指令碼
Init 指令碼可以存取叢集上所有環境變數。 Azure Databricks 會設定許多可在 init 指令碼邏輯中有用的預設變數。
Spark 設定中設定的環境變數可供 init 指令碼使用。 請參閱環境變數。
根據預設,哪些環境變數會公開給 init 指令碼?
叢集範圍和全域 init 指令碼支援下列環境變數:
DB_CLUSTER_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
:是否已建立叢集以執行工作。 請參閱設定作業的計算。
例如,如果您想要只在驅動程式節點上執行部分指令碼,您可以撰寫如下的指令碼:
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 指令碼中使用祕密
當您參考祕密時,可以使用任何有效的變數名稱。 環境變數中參考的祕密存取權取決於設定叢集的使用者權限。 儲存在環境變數中的祕密可由叢集的所有使用者存取,但會從純文字顯示進行修訂。