本文介绍与计算配置相关的建议和最佳做法。
如果工作负载受支持,Databricks 建议使用无服务器计算,而不是配置自己的计算资源。 无服务器计算是最简单、最可靠的计算选项。 它不需要任何配置,始终可用,而且可以根据工作负载进行缩放。 无服务器计算是笔记本、作业和 Lakeflow 声明性管道的计算选项。 请参阅连接到无服务器计算。
此外,数据分析师还可以使用无服务器 SQL 仓库查询和浏览 Databricks 上的数据。 请参阅什么是无服务器 SQL 仓库?。
选择适当的访问模式
经典全用途和作业计算具有一个访问模式设置,用于确定谁可以附加到和使用计算资源。 在 Unity 目录中,计算必须使用标准或专用访问模式。
标准计算可由多个用户和组共享,同时仍强制实施用户隔离和所有用户和组级数据访问权限。 这样,对于大多数工作负荷,尤其是强制实施精细访问控制的工作负荷,它成为更易于管理、经济高效的选项。
如果需要访问标准计算中不可用的功能(如 RDD API、GPU 实例、R 或 Databricks 容器服务),建议使用专用计算。 有关详细信息,请参阅 标准计算要求和限制。
使用计算策略
如果要从头开始创建新的计算,Databricks 建议使用计算策略。 利用计算策略,可以创建专为个人计算、共享计算、Power User 和作业等特定用途设计的预配置计算资源。 策略会限制配置计算设置时需要做出的决策。
如果无权访问策略,请联系工作区管理员。请参阅 默认策略和策略系列。
评估你是否会从 Photon 中受益
许多工作负荷受益于 Photon,但它最有利于涉及复杂转换的 SQL 工作负载和数据帧作,例如联接、聚合和数据扫描等大型表。 频繁访问磁盘、宽表或重复数据处理的工作负荷也看到了性能的提高。
不涉及宽转换或大型数据卷的简单批处理 ETL 作业可能会看到启用 Photon 的最小影响,尤其是在查询通常在两秒钟内完成时。
调整计算大小时的注意事项
注意
以下建议假定你已创建不受限制的群集。 工作区管理员应仅向高级用户授予此权限。
人们通常将计算大小与工作器数量相关联,但需要考虑其他一些重要因素:
- 执行程序的内核总数(计算):所有执行程序的内核总数。 这决定了计算的最大并行度。
- 执行程序的总内存量:所有执行程序的 RAM 总量。 这决定了在将数据溢写到磁盘之前,内存中可以存储的数据量。
- 执行程序本地存储:本地磁盘存储的类型和数量。 本地磁盘主要用于在随机操作和缓存期间发生溢写的情况。
其他注意事项包括工作器实例类型和大小,这也会影响上述因素。 调整计算大小时,请考虑以下事项:
- 工作负载将消耗多少数据?
- 工作负载的计算复杂性如何?
- 从何处读取数据?
- 数据在外部存储中是如何分区的?
- 需要多少并行度?
回答这些问题有助于根据工作负载确定最佳计算配置。
工作者数量与工作者实例类型的大小之间存在平衡。 配置有两个辅助角色(每个辅助角色有 16 个核心和 128 GB RAM)的计算与配置有 8 个辅助角色(每个辅助角色有 4 个核心和 32 GB RAM)的计算具有相同的计算和内存。
计算配置示例
以下示例显示特定类型的工作负载的计算建议。 这些示例还包括要避免的配置,以及这些配置不适用于工作负载类型的原因。
注意
在本节中的所有示例(除了机器学习训练)中,使用无服务器计算都比创建新的计算资源更为有用。 如果无服务器架构不支持您的任务负载,请参考以下建议来进行计算资源配置。
数据分析
数据分析师通常执行需要来自多个分区的数据的处理,从而导致许多随机操作。 具有较少大型节点的计算资源执行这些随机操作时所需的网络和磁盘 I/O 更少。
大型虚拟机类型的单节点计算可能是最佳选择,对于单个分析师尤其如此。
分析工作负载可能需要重复读取相同的数据,因此推荐的节点类型是启用了磁盘缓存的存储优化型节点,或是具备本地存储的实例。
建议用于分析工作负载的其他功能包括:
- 启用自动终止,确保计算在处于非活动状态一段时间后终止。
- 请考虑根据分析师的典型工作负荷启用自动缩放。
基本批处理 ETL
对于不需要宽转换(例如联接或聚合)的简单批处理 ETL 作业,请使用内存和存储要求较低的实例。 这可能会导致其他辅助角色类型节省成本。
复杂批处理 ETL
对于更复杂的 ETL 作业(例如,需要跨多个表进行联合和联接的作业),Databricks 建议尽量使用较少的辅助角色以减少随机数据量。 为平衡辅助角色较少的情况,需要增加实例的大小。
复杂转换可能需要大量计算。 如果观察到磁盘或 OOM 错误出现重大溢出,需要增加实例上可用的内存量。
(可选)使用池减少计算启动时间和运行作业管道时的总运行时。
训练机器学习模型
若要训练机器学习模型,Databricks 建议使用“个人计算”策略创建计算资源。
应该使用大型节点类型的单节点计算,进行训练机器学习模型的初始试验。 减少节点数可降低随机操作的影响。
增加辅助角色数有助于实现稳定性,但应避免由于随机数据开销而添加过多的辅助角色。
推荐的辅助角色类型是启用了磁盘缓存的存储优化型,或是具有本地存储的实例,以应对重复的相同数据读取并启用训练数据的缓存。
建议用于机器学习工作负载的其他功能包括:
- 启用自动终止,确保计算在处于非活动状态一段时间后终止。
- 使用池,这样可以将计算限制为预先批准的实例类型。
- 使用策略确保一致的计算配置。