计算配置建议

本文介绍与计算配置相关的建议和最佳做法。

如果工作负载受支持,Databricks 建议使用无服务器计算,而不是配置自己的计算资源。 无服务器计算是最简单、最可靠的计算选项。 它不需要任何配置,始终可用,而且可以根据工作负载进行缩放。 笔记本、作业和增量实时表可以使用无服务器计算。 请参阅连接到无服务器计算

此外,数据分析师还可以使用无服务器 SQL 仓库查询和浏览 Databricks 上的数据。 请参阅什么是无服务器 SQL 仓库?

使用计算策略

如果要从头开始创建新的计算,Databricks 建议使用计算策略。 利用计算策略,可以创建专为个人计算、共享计算、Power User 和作业等特定用途设计的预配置计算资源。 策略会限制配置计算设置时需要做出的决策。

如果你无权访问策略,请联系工作区管理员。请参阅默认策略和策略系列

调整计算大小时的注意事项

注意

以下建议假定你已创建不受限制的群集。 工作区管理员应仅向高级用户授予此权限。

人们通常将计算大小与工作器数量相关联,但需要考虑其他一些重要因素:

  • 执行程序的内核总数(计算):所有执行程序的内核总数。 这决定了计算的最大并行度。
  • 执行程序的总内存量:所有执行程序的 RAM 总量。 这决定了在将数据溢写到磁盘之前,内存中可以存储的数据量。
  • 执行程序本地存储:本地磁盘存储的类型和数量。 本地磁盘主要用于在随机操作和缓存期间发生溢写的情况。

其他注意事项包括工作器实例类型和大小,这也会影响上述因素。 调整计算大小时,请考虑以下事项:

  • 工作负载将消耗多少数据?
  • 工作负载的计算复杂性如何?
  • 从何处读取数据?
  • 数据在外部存储中是如何分区的?
  • 需要多少并行度?

回答这些问题有助于根据工作负载确定最佳计算配置。

工作器数量与工作器实例类型的大小这两者之间需要一个平衡。 配置有两个辅助角色(每个辅助角色有 16 个核心和 128 GB RAM)的计算与配置有 8 个辅助角色(每个辅助角色有 4 个核心和 32 GB RAM)的计算具有相同的计算和内存。

计算配置示例

以下示例显示特定类型的工作负载的计算建议。 这些示例还包括要避免的配置,以及这些配置不适用于工作负载类型的原因。

注意

在本节中的所有示例(除了机器学习训练)中,使用无服务器计算都比创建新的计算资源更为有用。 如果你的工作负载不支持无服务器,请按照以下建议来配置计算资源。

数据分析

数据分析师通常执行需要来自多个分区的数据的处理,从而导致许多随机操作。 具有较少大型节点的计算资源执行这些随机操作时所需的网络和磁盘 I/O 更少。

大型虚拟机类型的单节点计算可能是最佳选择,对于单个分析师尤其如此。

分析工作负载可能需要重复读取相同的数据,因此推荐的节点类型是启用了磁盘缓存的存储优化型节点,或是具备本地存储的实例。

建议用于分析工作负载的其他功能包括:

  • 启用自动终止,确保计算在处于非活动状态一段时间后终止。
  • 请考虑根据分析师的典型工作负载启用自动缩放。

基本批处理 ETL

不需要进行太多转换(例如联接或聚合)的简单批处理 ETL 作业通常使用 Photon 效果会更好。 因此,请选择支持 Photon 的常规用途实例。

对内存和存储要求较低的实例,与其他辅助角色类型相比,可能更节省成本。

复杂批处理 ETL

对于更复杂的 ETL 作业(例如,需要跨多个表进行联合和联接的作业),Databricks 建议尽量使用较少的辅助角色以减少随机数据量。 为平衡辅助角色较少的情况,需要增加实例的大小。

复杂转换可能需要大量计算。 如果观察到磁盘或 OOM 错误出现重大溢出,需要增加实例上可用的内存量。

(可选)使用池减少计算启动时间和运行作业管道时的总运行时。

训练机器学习模型

若要训练机器学习模型,Databricks 建议使用“个人计算”策略创建计算资源

应该使用大型节点类型的单节点计算,进行训练机器学习模型的初始试验。 减少节点数可降低随机操作的影响。

增加辅助角色数有助于实现稳定性,但应避免由于随机数据开销而添加过多的辅助角色。

推荐的辅助角色类型是启用了磁盘缓存的存储优化型,或是具有本地存储的实例,以应对重复的相同数据读取并启用训练数据的缓存。

建议用于机器学习工作负载的其他功能包括:

  • 启用自动终止,确保计算在处于非活动状态一段时间后终止。
  • 使用池,这样可以将计算限制为预先批准的实例类型。
  • 使用策略确保一致的计算配置。