计算组是对队列资源的进一步划分,用于更高效地执行特定任务、优化资源分配并确保资源隔离。所有的查询和任务都需要提交到队列下的一个计算组。
计算组通过为不同类型的任务提供定制化的资源配置和管理,帮助用户实现更高效的任务执行。
计算组可以分为 通用计算组(默认创建的 Default 计算组) 和 专用计算组(Spark SQL Warehouse、Presto SQL Warehouse、Ray Cluster)。其中,通用计算组适用于广泛的任务类型,而专用计算组则针对特定任务类型提供优化的资源配置,确保任务能够高效执行。
计算组特别适用于以下几种情况,尤其是专用计算组:
PrestoSQL 必须有一个常驻的 coordinator 来启动任务,因此你没有办法在通用计算组(Default 计算组)执行 PrestoSQL 任务。此时,通过创建 Presto SQL Warehouse 计算组,为 PrestoSQL 任务预留常驻资源,可以确保 PrestoSQL 的执行。
对于 SparkSQL 这样的任务,Spark SQL Warehouse 计算组通过预热资源的方式减少了任务执行的延迟,使任务能够在秒级时间内启动,特别适用于需要快速响应的即席查询任务。
计算组将队列的资源划分成多个独立的单元,为不同类型的任务提供专门的资源。这种划分能够有效避免资源竞争,确保每个任务根据其资源需求得到合理分配,特别适用于需要确保资源的任务。
通用计算组(Default 计算组)与专用计算组(Spark SQL Warehouse、Presto SQL Warehouse、Ray Cluster)的区别
特点 | 通用计算组 (Default 计算组) | 专用计算组 (Spark SQL Warehouse、Presto SQL Warehouse、Ray Cluster) |
|---|---|---|
适用任务 | SparkSQL, SparkJar, PySpark, RayJob, HiveSQL, CustomJob | SparkSQL(Spark SQL Warehouse)、PrestoSQL(Presto SQL Warehouse)、RayJob(Ray Cluster) |
资源管理 | 动态分配资源,多个作业共享资源池,作业级别分配资源。 | 独立管理自身的资源,支持常驻资源、按需资源等。 |
任务灵活性 | 高,支持多种作业类型 | 仅支持特定类型任务,但能提供更高效的执行性能 |
延迟优化 | 较高,资源动态申请可能导致延迟 | 较低,减少了预拉起时间 |
优点 | 灵活性高,支持多种作业类型 | 提供针对特定任务的资源优化 |
缺点 | 资源需要动态申请,有一定耗时(30s左右) | 灵活性较低,适用于特定类型的任务,无法支持多种任务类型的运行 |
适用场景 | 生产&大型任务 | AdHoc 等对时延敏感的查询(Spark SQL Warehouse/Presto SQL Warehouse); |