将 Azure Databricks 计算用于作业

当你运行 Azure Databricks 作业时,配置为作业一部分的任务将在 Azure Databricks 计算(无服务器计算、群集或 SQL 仓库,具体取决于任务类型)上运行。 将作业操作化时,选择适当的计算类型和配置选项非常重要。 本文提供了有关使用 Azure Databricks 计算资源运行作业的建议。

若要详细了解如何将无服务器计算与 Azure Databricks 作业配合使用,请参阅使用工作流的无服务器计算运行 Azure Databricks 作业

注意

不会从群集的 Spark 驱动程序日志 stdoutstderr 流中修订机密。 为了保护敏感数据,默认情况下,只有由对作业、单用户访问模式和共享访问模式群集具有“CAN MANAGE”权限的用户才能查看 Spark 驱动程序日志。 若要允许具有“CAN ATTACH TO”或“CAN RESTART”权限的用户查看这些群集上的日志,请在群集配置中设置以下 Spark 配置属性:spark.databricks.acl.needAdminPermissionToViewLogs false

在“无隔离共享”访问模式群集上,具有“CAN ATTACH TO”或“CAN MANAGE”权限的用户可以查看 Spark 驱动程序日志。 若要限制只有具有“CAN MANAGE”权限的用户才能读取日志,请将 spark.databricks.acl.needAdminPermissionToViewLogs 设置为 true

请参阅 Spark 配置来了解如何将 Spark 属性添加到群集配置。

使用共享作业群集

若要优化协调多个任务的作业的资源使用情况,请使用共享作业群集。 共享作业群集允许同一作业运行中的多个任务重复使用群集。 可以使用单个作业群集来运行属于该作业的所有任务,或者使用针对特定工作负荷优化的多个作业群集。 若要使用共享作业群集:

  1. 创建任务并完成群集配置时,选择“新作业群集”。
  2. 将任务添加到作业时选择新群集,或创建新作业群集。 选择“新作业群集”时,配置的任何群集都可用于作业中的任意任务。

共享作业群集的范围为单个作业运行,不能由同一作业的其他作业或运行使用。

不能在共享作业群集配置中声明库。 必须在任务设置中添加依赖库。

为作业选择适当的群集类型

  • “新作业群集”是作业或任务运行的专用群集。 使用群集的第一个任务启动并在使用群集的最后一个任务完成后终止时,将创建并启动共享作业群集。 群集在空闲时不会终止,而是仅在所有任务完成后终止。 如果共享作业群集在所有任务完成之前失败或终止,则创建一个新群集。 当任务启动,并在任务完成后终止时,将创建并启动作用域为单个任务的群集。 在生产环境中,Databricks 建议使用新的共享或任务范围的群集,使每个作业或任务在完全隔离的环境中运行。
  • 在新群集上运行某个任务时,该任务被视为数据工程(任务)工作负载,受任务工作负载定价的约束。 在现有通用群集上运行某个任务时,该任务被视为数据分析(通用)工作负载,受通用工作负载定价的约束。
  • 如果选择一个已终止的现有群集,并且作业所有者拥有“CAN RESTART”权限,则 Azure Databricks 会在作业按计划运行时启动该群集。
  • 现有通用群集最适用于按固定时间间隔更新仪表板之类的任务。

使用池缩短群集启动时间

若要缩短新作业群集开始时间,请创建一个,并将该作业的群集配置为使用该池。