Databricks 作业的监视和可观测性
本文介绍 Azure Databricks UI 中可用于查看你有权访问的作业、查看作业运行历史记录以及查看作业运行详细信息的功能。 要为作业配置通知,请参阅为作业事件添加电子邮件和系统通知。
若要了解如何使用 Databricks CLI 查看作业和运行作业,请运行 CLI 命令 databricks jobs list -h
、databricks jobs get -h
和 databricks jobs run-now -h
。 若要了解如何使用作业 API,请参阅作业 API。
如果你有权访问 system.lakeflow
架构,则还可以查看和查询整个帐户中作业运行和任务的记录。 请参阅作业系统表参考。
若要查看你有权访问的作业的列表,请单击边栏中的 “工作流”。 工作流 UI 中的“作业”选项卡会列出有关所有可用作业的信息,例如作业的创建者、作业的触发器(如果有)以及上次运行的结果。
要更改作业列表中显示的列,请单击,然后选择或取消选择列。
可以在“作业”列表中筛选作业:
- 使用关键字。 如果为此工作区启用了增加作业限制功能,则仅支持按关键字搜索名称、作业 ID 和作业标记字段。
- 仅选择你拥有的作业。
- 选择你有权访问的所有作业。
- 使用标记。 若要搜索仅使用键创建的标记,请在搜索框中键入该键。 若要搜索使用键和值创建的标记,可以按键、值或键和值进行搜索。 例如,对于具有键
department
和值finance
的标记,可以搜索department
或finance
查找匹配的作业。 要按键和值进行搜索,请输入键和值并用冒号分隔;例如department:finance
。
你还可以单击任何列标题,以便按该列对作业列表排序(降序或升序)。 启用增加作业限制功能后,只能按 Name
Job ID
或 Created by
排序。 默认排序是按 Name
升序排序。
单击,以访问作业的操作,例如删除作业。
你可以查看自己有权访问的所有作业的当前正在执行的运行和最近完成的运行的列表,包括由 Apache Airflow 或 Azure 数据工厂之类的外部业务流程工具启动的运行。 若要查看最近的作业运行列表,请执行以下操作:
- 在边栏中,单击 “工作流”。
- 在“名称”列中单击作业名称。 此时会显示“运行”选项卡,其中包含活动运行和已完成运行的矩阵和列表视图。
矩阵视图显示作业运行的历史记录,包括每个作业任务。
矩阵的“运行总持续时间”行会显示运行的总持续时间和运行的状态。 若要查看运行的详细信息(包括开始时间、持续时间和状态),请将鼠标悬停在“运行总持续时间”行中的条上。
“任务”行中的每个单元格代表一个任务和该任务的相应状态。 若要查看每个任务的详细信息,包括开始时间、持续时间、群集和状态,请将鼠标悬停在该任务的单元格上。
作业运行和任务运行条采用颜色编码以指示运行状态。 成功的运行为绿色,未成功的运行为红色,跳过的运行为粉红色。 单个作业运行和任务运行条的高度可直观指示运行持续时间。
如果已配置预期完成时间,则当运行持续时间超过配置的时间时,矩阵视图会显示警告。
默认情况下,运行列表视图显示:
- 运行开始时间。
- 运行标识符。
- 运行是由作业计划触发、API 请求触发还是手动启动的。
- 当前正在运行的作业的已用时间,或已完成的运行的总运行时间。 如果持续时间超过配置的预期完成时间,则显示警告。
- Spark 日志的链接。
- 运行状态,值为
Queued
、Pending
、Running
、Skipped
、Succeeded
、Failed
、Terminating
、Terminated
、Internal Error
、Timed Out
、Canceled
、Canceling
或Waiting for Retry
。 - 单击,以访问运行的上下文特定操作,例如停止活动运行或删除已完成的运行。
要更改运行列表视图中显示的列,请单击,然后选择或取消选择列。
若要查看作业运行详细信息,请在运行列表视图的“开始时间”列中单击该运行的链接。 若要查看此作业最近一次成功运行的详细信息,请单击“转到最近一次成功运行”。
Azure Databricks 最多可以保留 60 天的作业运行历史。 如果需要保留作业运行,Databricks 建议在结果过期之前将其导出。 有关详细信息,请参阅导出作业运行结果。
作业运行详细信息页包含作业输出和日志链接,其中包括有关作业运行中每个任务的成功或失败结果的信息。 可以通过作业的“运行”选项卡访问作业运行详细信息。 若要从“运行”选项卡查看作业运行详细信息,请在运行列表视图的“开始时间”列中单击该运行的链接。 若要返回到作业的“运行”选项卡,请单击“作业 ID”值。
如果作业包含多个任务,则单击某个任务即可查看任务运行详细信息,其中包括:
- 运行该任务的群集
- 该任务的 Spark UI
- 该任务的日志
- 该任务的指标
单击“作业 ID”值以返回到作业的“运行”选项卡。
Azure Databricks 根据作业叶任务的结果来确定作业运行是否成功。 叶任务是无下游依赖项的任务。 作业运行可以有以下三个结果之一:
- 成功:所有任务都成功。
- 成功但失败:一些任务失败,但所有叶任务都成功。
- 失败:一个或多个叶任务失败。
查看任务的运行历史记录,包括成功和未成功的运行:
- 单击“作业运行详细信息”页上的某个任务。 此时将显示“任务运行详细信息”页。
- 在运行历史记录下拉菜单中选择任务运行。
访问 For each
任务的运行历史记录与访问标准 Azure Databricks 作业任务的相同。 可以单击“作业运行详细信息”页面上的 For each
任务节点或矩阵视图中的相应单元格。 不过,与标准任务不同,For each
任务的运行详细信息显示为嵌套任务的迭代表。
若要仅查看失败的迭代,请单击“仅失败的迭代”。
若要查看迭代的输出,请单击迭代的“开始时间”或“结束时间”值。
你可以查看自己有权访问的工作区中所有作业的当前正在执行的运行和最近完成的运行的列表,包括由 Apache Airflow 或 Azure 数据工厂之类的外部业务流程工具启动的运行。 若要查看最近的作业运行列表,请执行以下操作:
- 在边栏中,单击 “工作流”。
- 单击“作业运行”选项卡以显示“作业运行”列表。
“已完成的运行计数”图可显示过去 48 小时内完成的作业运行数。 默认情况下,该图显示失败、跳过和成功的作业运行。 还可以筛选该图以显示特定的运行状态,或将该图限制为特定的时间范围。 “作业运行”选项卡还包括过去 67 天的作业运行表。 默认情况下,该表包含有关失败、跳过和成功作业运行的详细信息。
备注
仅当单击“归我所有”时,才会显示“已完成的运行计数”图。
可以按运行状态筛选“已完成的运行计数”:
- 要更新该图以显示当前正在运行或等待运行的作业,请单击“活动运行”。
- 要更新图形以仅显示已完成的运行,包括失败、成功和跳过的运行,请单击“已完成的运行”。
- 要更新图形以仅显示在过去 48 小时内成功完成的运行,请单击“成功的运行”。
- 要更新图形以仅显示跳过的运行,请单击“跳过的运行”。 跳过运行的原因是你超出了工作区中的最大并发运行数,或者作业超过了作业配置指定的最大并发运行数。
- 要更新图形以仅显示处于错误状态的已完成运行,请单击“失败的运行”。
单击任何筛选器按钮时,运行表中的运行列表也会更新,以仅显示与所选状态匹配的作业运行。
要限制“已完成的运行计数”图中显示的时间范围,请在图中单击并拖动光标以选择时间范围。 图和运行表将会更新,以仅显示所选时间范围内的运行。
默认情况下,运行表中的运行列表会显示:
- 运行开始时间。
- 与运行关联的作业名称。
- 运行作业的用户名。
- 运行是由作业计划触发、API 请求触发还是手动启动的。
- 当前正在运行的作业的已用时间,或已完成的运行的总运行时间。 如果持续时间超过配置的预期完成时间,则显示警告。
- 运行状态,值为
Queued
、Pending
、Running
、Skipped
、Succeeded
、Failed
、Terminating
、Terminated
、Internal Error
、Timed Out
、Canceled
、Canceling
或Waiting for Retry
。 - 此运行的任何参数。
- 单击,以访问运行的上下文特定操作,例如停止活动运行或删除已完成的运行。
要更改运行列表中显示的列,请单击,然后选择或取消选择列。
“前 5 个错误类型”表可显示所选时间范围内最常见的错误类型的列表,从而支持你快速查看工作区中作业问题的最常见原因。
若要查看作业运行详细信息,请单击运行“开始时间”列中的链接。 若要查看作业详细信息,请单击“作业”列中的作业名称。
如果在工作区中启用了 Unity Catalog,则可以查看工作流中任何 Unity Catalog 表的世系信息。 如果提供了工作流的世系信息,则作业的“作业详细信息”面板、作业运行的“作业运行详细信息”面板或任务运行的“任务运行详细信息”面板中会显示一个链接,其中包含上游和下游表的计数。 单击该链接会显示表的列表。 单击某个表可在目录资源管理器中查看详细信息。
可以使用 Azure Databricks 作业 UI 查看和运行由 Databricks 资产捆绑包部署的作业。 默认情况下,这些作业在作业 UI 中为只读。 若要编辑捆绑包部署的作业,请更改捆绑包配置文件并重新部署作业。 仅对捆绑包配置应用更改可确保捆绑包源文件始终捕获当前作业配置。
但是,如果必须立即更改作业,则可以断开作业与捆绑包配置的连接,以便在 UI 中编辑作业设置。 若要断开与作业的连接,请单击“从源断开连接”。 在“从源断开连接”对话框中,单击“断开连接”进行确认。
对 UI 中作业所做的任何更改都不会应用于捆绑包配置。 若要将 UI 中所做的更改应用于捆绑包,则必须手动更新捆绑包配置。 若要将作业重新连接到捆绑包配置,请使用捆绑包重新部署作业。
可以为所有作业类型导出笔记本运行结果和作业运行日志。
可以通过导出作业运行的结果来持久保存作业运行。 对于笔记本作业运行,可以先导出呈现的笔记本,稍后再将其导入到 Azure Databricks 工作区中。
导出具有单个任务的作业的笔记本运行结果:
- 在“作业详细信息”页上,在“已完成的运行(过去 60 天)”表的“运行”列中,单击该运行对应的“查看详细信息”链接 。
- 单击“导出到 HTML”。
导出具有多个任务的作业的笔记本运行结果:
- 在“作业详细信息”页上,在“已完成的运行(过去 60 天)”表的“运行”列中,单击该运行对应的“查看详细信息”链接 。
- 单击用于导出的笔记本任务。
- 单击“导出到 HTML”。
你还可以导出作业运行的日志。 可以设置作业,使其通过作业 API 自动将日志传送到 DBFS。 请参阅传递给作业 API 中new_cluster.cluster_log_conf
操作 (POST /jobs/create
) 的请求正文中的 new_cluster.cluster_log_conf
对象。