共用方式為


設定及使用環境變數與 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 指令碼中使用祕密

當您參考祕密時,可以使用任何有效的變數名稱。 環境變數中參考的祕密存取權取決於設定叢集的使用者權限。 儲存在環境變數中的祕密可由叢集的所有使用者存取,但會從純文字顯示進行修訂。

請參閱在 Spark 組態屬性或環境變數中使用祕密