init 脚本有权访问群集上存在的所有环境变量。
默认环境变量
Azure Databricks设置许多可用于初始化脚本逻辑的默认变量。 群集范围和全局初始化脚本支持以下环境变量:
-
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:是否创建群集来运行作业。 请参阅配置作业的计算。
不能替代这些预定义的环境变量。
设置自定义环境变量
可以在 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 脚本中的机密
引用机密时,可以使用任何有效的变量名称。 对环境变量中引用的机密的访问权限由配置群集的用户的权限确定。 存储在环境变量中的机密可供群集的所有用户访问,但已经过编修,不以明文显示。