Apache Spark for Microsoft Fabric 中的作业许可

适用于:✅Microsoft Fabric 中的数据工程和数据科学

Apache Spark for Fabric 利用乐观作业许可技术来确定 Spark 作业的最低核心要求。 此过程适用于笔记本、湖屋或 Spark 作业定义中的交互式或批处理作业。 它依赖于工作区设置或附加环境中所选 Spark 池的最小节点设置。 如果在链接到工作区的 Fabric 容量中找到可用核心,则作业将被接受并开始执行。 作业以其最小节点设置启动,并且可以根据作业阶段在最大节点限制内扩展。 如果利用 Fabric 容量运行作业所使用的核心总数低于分配的最大突发核心数,Fabric Spark 上的作业许可和限制层将允许作业扩展。

有关详细信息,请参阅 Microsoft Fabric Spark 中的并发限制和队列

乐观作业许可的工作原理是什么?

在 Fabric 中,入门池默认最少有一个节点,而自定义池允许你根据工作负载需求设置最少节点。 自动缩放可在执行阶段在配置的最小和最大节点内调整 Spark 作业的计算要求。 乐观作业准入根据可用核心评估作业提交,并使用最少的核心执行它们。 作业在执行期间尝试根据最大分配节点增长。 如果使用的 Spark 核心总数在分配的容量限制内,则批准纵向扩展请求。

注意

如果使用量达到最大限制,并且 Fabric 总容量内的所有核心都在使用中,则任何纵向扩展请求都将被拒绝。 活动作业必须完成或取消才能释放核心。

这如何影响作业并发性?

每个作业的最低核心要求决定了该作业是否可以被接受。 如果容量已充分利用并且没有剩余核心来满足作业的最低核心需求,则该作业将被拒绝。 交互式笔记本作业或湖屋操作将被阻止,并显示错误消息“无法提交此请求,因为当前正在使用所有可用容量”。取消当前正在运行的作业,增加可用容量,或稍后重试。 一旦核心可用,批处理作业就会排队并执行。

例如,考虑用户使用 Fabric F32 容量 SKU 的场景。 假设所有作业都使用默认启动池设置,而没有乐观作业许可,则容量将支持最多三个作业的并发。 每个作业的最大核心数根据最大节点配置进行分配。

显示 Fabric Spark 中未使用乐观作业许可时的作业并发屏幕截图。

通过具有上述相同容量的乐观作业许可,在最大并发场景下,可以使用其最小节点配置准入并执行 24 个作业。 因为每项作业都需要 8 个 Spark VCore,其中一个最小节点配置为中等大小。

显示 Fabric Spark 中使用乐观作业许可时的作业并发屏幕截图。

使用 Spark 自动缩放缩放缩放作业

为 Spark 池启用自动缩放时,作业将以其最小节点配置执行。 在运行时,可能会发生缩放。 这些请求将通过作业许可控制。 批准的请求会根据可用核心总数扩展到最大限制。 拒绝的请求不会影响活动的作业;它们将继续以其当前配置运行,直到核心可用。

显示 Fabric Spark 中使用乐观作业许可时的作业纵向扩展屏幕截图。

注意

若要根据作业的最大节点配置确保最大核心分配,请禁用自动缩放并在 Fabric 容量 SKU 内设置最大节点。 在这种情况下,由于作业没有最低核心要求,因此一旦有可用核心,它将开始运行,并扩展到配置的总数。 如果容量已完全使用,笔记本交互式作业可能会变慢或排队。 当内核可用时,排队的作业会自动重试。