Поделиться через


Ограничения параллелизма и очереди в Apache Spark для Microsoft Fabric

Область применения: Инжиниринг данных и Обработка и анализ данных в Microsoft Fabric

Microsoft Fabric позволяет выделять вычислительные единицы с помощью емкости, который является выделенным набором ресурсов, доступных в определенное время для использования. Емкость определяет способность ресурса выполнять действие или производить выходные данные. Разные элементы используют другую емкость в определенное время. Microsoft Fabric предлагает емкость с помощью номеров SKU Fabric и пробных версий. Дополнительные сведения см. в разделе "Что такое емкость?".

Когда пользователи создают емкость Microsoft Fabric в Azure, они выбирают размер емкости на основе размера рабочей нагрузки аналитики. В Apache Spark пользователи получают два виртуальных ядра Apache Spark для каждой единицы емкости, которые они резервируют в рамках SKU.

Единица емкости = два виртуальных ядра Spark

После приобретения емкости администраторы могут создавать рабочие области в пределах емкости в Microsoft Fabric. Виртуальные ядра Spark, связанные с емкостью, используются для всех элементов на основе Apache Spark, таких как записные книжки, определения заданий Apache Spark и озера, созданные в этих рабочих областях.

Регулирование параллелизма и очереди

Spark for Fabric применяет механизм регулирования на основе ядер и очереди, где пользователи могут отправлять задания на основе приобретенных номеров SKU емкости Fabric. Механизм очереди — это простая очередь на основе FIFO, которая проверяет наличие доступных слотов заданий и автоматически повторяет задания после того, как емкость станет доступной. Когда пользователи могут отправлять задания записной книжки или lakehouse, такие как Загрузка в таблицу, если их емкость находится на максимальном уровне использования из-за одновременных выполнения заданий с использованием всех виртуальных ядер Spark, доступных для их приобретенного номера SKU емкости Fabric, они регулируются с сообщением.

Код HTTP-ответа 430: это задание Spark не может быть запущено, так как вы достигли ограничения скорости вычислений Spark или API. Чтобы запустить это задание Spark, отмените активное задание Spark через центр мониторинга или выберите номер SKU большей емкости или повторите попытку позже.

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

Емкости Fabric включены с ускорением, что позволяет использовать дополнительные вычислительные ядра за пределами того, что было приобретено, чтобы ускорить выполнение рабочей нагрузки. Для рабочих нагрузок Apache Spark ускорение позволяет пользователям отправлять задания в общей сложности 3X приобретенных виртуальных ядер Spark.

Примечание.

Коэффициент ускорения увеличивает общее количество виртуальных ядер Spark, чтобы помочь с параллелизмом, но не увеличивает максимальное количество ядер на задание. Пользователи не могут отправлять задание, требующее больше ядер, чем предложение емкости Fabric.

В следующем разделе перечислены различные ограничения на основе ядер для рабочих нагрузок Spark на основе номеров SKU емкости Microsoft Fabric:

Номер SKU емкости Fabric Эквивалентный номер SKU Power BI Виртуальные ядра Spark Максимальное количество виртуальных ядер Spark с коэффициентом ускорения Ограничение очереди
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
Емкость пробной версии P1 128 128 Неприменимо

Пример вычисления: SKU F64 предлагает 128 виртуальных ядер Spark. Коэффициент ускорения, применяемый для номера SKU F64, равен 3, что дает в общей сложности 384 виртуальных ядер Spark. Коэффициент ускорения применяется только для поддержки параллелизма и не увеличивает максимальные ядра, доступные для одного задания Spark. Это означает, что одно задание Notebook или Spark или lakehouse может использовать конфигурацию пула максимум 128 виртуальных ядер и 3 задания с той же конфигурацией можно выполнять одновременно. Если записные книжки используют меньшую конфигурацию вычислений, они могут выполняться одновременно, пока максимальное использование не достигнет предела 384 SparkVcore.

Примечание.

Задания имеют срок действия очереди в течение 24 часов, после чего они отменены, и пользователи должны повторно отправить их для выполнения задания.

Регулирование Spark для Fabric не применяет произвольные ограничения на основе заданий, и регулирование зависит только от количества ядер, разрешенных для приобретенной емкости Fabric SKU. Прием заданий по умолчанию будет оптимистичным контролем допуска, где задания принимаются на основе их минимальных требований к ядрам. Дополнительные сведения о оптимистическом приеме заданий и управлении заданиями, если для рабочей области выбран параметр пула по умолчанию (начальный пул), в следующей таблице перечислены ограничения максимального числа заданий параллелизма.

Дополнительные сведения о конфигурациях начального пула по умолчанию на основе номера SKU емкости Fabric, настраивающего начальные пулы.

Ускорение уровня задания

Администраторы могут настроить пулы Apache Spark для использования максимального числа ядер Spark с коэффициентом ускорения, доступным для всей емкости. Например, администратор рабочей области с присоединенной рабочей областью к емкости F64 Fabric теперь может настроить пул Spark (начальный пул или настраиваемый пул) до 384 виртуальных ядер Spark, где максимальные узлы начальных пулов могут иметь значение 48 или администраторы могут настроить пул размером 6 максимальных узлов XX.