通过 init 脚本设置和使用环境变量

init 脚本有权访问群集上存在的所有环境变量。 Azure Databricks 设置了许多在 init 脚本逻辑中实用的默认变量。

Spark 配置中设置的环境变量可用于 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:是否创建群集来运行作业。 请参阅配置作业的计算

例如,如果只想在驱动程序节点上运行脚本的一部分,则可以编写如下脚本:

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 配置属性或环境变量中使用机密