初始化脚本日志记录
在群集事件日志中捕获 init 脚本的开始和结束事件。 在群集日志中捕获详细信息。 在帐户级别诊断日志中捕获全局 init 脚本的创建、编辑和删除事件。
Init 脚本事件
群集事件日志捕获两个 init 脚本事件:INIT_SCRIPTS_STARTED
和 INIT_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 脚本的 stderr
和 stdout
输出。 应确保全局 init 脚本不输出任何敏感信息。
诊断日志中的 init 脚本事件
Azure Databricks 诊断日志捕获事件类型为 globalInitScripts
的全局初始化脚本的创建、编辑和删除事件。 请参阅全局初始化脚本事件。