初始化脚本日志记录

在群集事件日志中捕获 init 脚本的开始和结束事件。 在群集日志中捕获详细信息。 在帐户级别诊断日志中捕获全局 init 脚本的创建、编辑和删除事件。

Init 脚本事件

群集事件日志捕获两个 init 脚本事件:INIT_SCRIPTS_STARTEDINIT_SCRIPTS_FINISHED,指示计划执行的脚本和已成功完成的脚本。 INIT_SCRIPTS_FINISHED 还捕获执行持续时间。

在日志事件详细信息中,由密钥 "global" 指示全局 init 脚本,而由密钥 "cluster" 指示群集范围 init 脚本。

注意

群集事件日志不记录每个群集节点的 init 脚本事件;仅选择一个节点来代表全部。

Init 脚本日志写入何处?

如果为群集配置了群集日志传送,init 脚本日志会写入到 /<cluster-log-path>/<cluster-id>/init_scripts

群集中每个容器的日志都会写入到名为 init_scripts/<cluster-id>_<container-ip> 的子目录。

例如,如果将 cluster-log-path 设置为 cluster-logs,某个特定容器的日志路径就会是:dbfs:/cluster-logs/<cluster-id>/init_scripts/<cluster-id>_<container-ip>

如果群集配置为将日志写入 DBFS,可使用文件系统实用程序 (dbutils.fs)DBFS CLI(旧版)来查看日志。 例如,如果群集 ID 为 1001-234039-abcde739

dbfs ls dbfs:/cluster-logs/1001-234039-abcde739/init_scripts
1001-234039-abcde739_10_97_225_166
1001-234039-abcde739_10_97_231_88
1001-234039-abcde739_10_97_244_199
dbfs ls dbfs:/cluster-logs/1001-234039-abcde739/init_scripts/1001-234039-abcde739_10_97_225_166
<timestamp>_<log-id>_<init-script-name>.sh.stderr.log
<timestamp>_<log-id>_<init-script-name>.sh.stdout.log

在未配置群集日志传送时,日志会写入到 /databricks/init_scripts。 可以使用笔记本中的标准 shell 命令来列出和查看日志:

%sh
ls /databricks/init_scripts/
cat /databricks/init_scripts/<timestamp>_<log-id>_<init-script-name>.sh.stdout.log

群集每次启动时,都会将日志写入 init 脚本日志文件夹。

重要

创建群集并启用群集日志传送的任何用户都可以查看全局 init 脚本的 stderrstdout 输出。 应确保全局 init 脚本不输出任何敏感信息。

诊断日志中的 init 脚本事件

Azure Databricks 诊断日志捕获事件类型为 globalInitScripts 的全局初始化脚本的创建、编辑和删除事件。 请参阅全局初始化脚本事件