Прием заданий в Apache Spark для Microsoft Fabric

Применимо к:✅ Проектирование данных и наука о данных в Fabric

Fabric Spark использует оптимистичный подход к приему заданий, чтобы определить, может ли задание быть запущено немедленно. Решение основано на минимальном основном требовании задания и в настоящее время доступных виртуальных ядер Spark в подключенной мощности Fabric.

Это поведение применяется к интерактивным и пакетным заданиям из записных книжек, lakehouses и определений заданий Spark. Задания начинаются с минимального параметра узла и могут масштабироваться до заданного максимального значения, если емкость остается доступной.

Дополнительные сведения см. в разделе Ограничения и очереди в Microsoft Fabric Spark.

Как работает оптимистичное распределение задач

В Fabric начальные пулы по умолчанию содержат как минимум один узел, а настраиваемые пулы позволяют определять минимальные и максимальные узлы. Прием заявок проводится в следующем порядке:

  1. Фабрика оценивает отправленное задание в соответствии с минимальной конфигурацией узлов пула.
  2. Если доступны виртуальные ядра (VCores) Spark, задание запускается.
  3. Во время выполнения запросы автоматического масштабирования оцениваются относительно оставшегося ресурса.
  4. Масштабирование допускается только в том случае, если общее количество ядер, используемых, остается в пределах предела емкости (включая всплеск, когда доступно).

Примечание.

Если общее количество ядер емкости Fabric уже используется, запросы на масштабирование отклоняются, пока ядра не освобождаются путем выполнения заданий.

Как это влияет на параллелизм заданий

Минимальное базовое требование каждого задания определяет, можно ли его принимать. Если емкость не имеет доступных ядер для удовлетворения минимального требования:

  • Интерактивные задания в блокноте и операции с lakehouse блокируются из-за ошибки недостаточной емкости.
  • Пакетные задания помещаются в очередь и выполняются, когда ядра становятся доступными.

Пример: емкость F32

Рассмотрим емкость F32. В режиме ускоренной обработки эта емкость может использовать до 192 виртуальных ядер (VCores) Spark. Если каждое задание допускается при максимальной емкости пула в 64 виртуальных ядра Spark, емкость позволяет выполнять три параллельных задания.

Снимок экрана, показывающий одновременное выполнение задач без оптимистичного разрешения задач в Fabric Spark.

При оптимистическом приёме задач такая же емкость может принять до 24 задач, если каждая задача начинается с минимумом в 8 виртуальных ядер Spark (например, узел среднего размера).

Снимок экрана, показывающий одновременное выполнение заданий при использовании оптимистического приема заданий в Fabric Spark.

Масштабирование заданий с помощью автомасштабирования Spark

Если автомасштабирование включено, задания начинаются с минимальной конфигурации узлов. Во время выполнения запросы масштабирования оцениваются тем же контролем допуска.

  • Утвержденные запросы масштабирования увеличивают ресурсы в соответствии с настроенным максимумом.
  • Отклоненные запросы на масштабирование сохраняют выполнение задачи с текущим выделением ресурсов до тех пор, пока не будет доступна емкость.

Снимок экрана: масштабирование задания с оптимистическим приемом заданий в Fabric Spark.

Примечание.

Если требуется прогнозируемое вычисление для каждого задания, отключите автомасштабирование и используйте фиксированную конфигурацию узла, которая соответствует ограничениям емкости Fabric. Если емкость полностью используется, интерактивные запросы могут быть заблокированы, а пакетные могут оказаться в ожидании до того момента, пока ядра не станут доступными.