通过


在 init 脚本中设置和使用环境变量

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 脚本中的机密

引用机密时,可以使用任何有效的变量名称。 对环境变量中引用的机密的访问权限由配置群集的用户的权限确定。 存储在环境变量中的机密可供群集的所有用户访问,但已经过编修,不以明文显示。

请参阅在 Spark 配置属性或环境变量中使用机密