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


Обзор вычислений Apache Spark в Microsoft Fabric

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

Проектирование и обработка данных Fabric выполняются на полностью управляемой вычислительной платформе Apache Spark. Начальные пулы обеспечивают быстрый запуск сеанса, как правило, в 5–10 секунд без ручной настройки. Настраиваемые пулы Spark позволяют настраивать размер узла, поведение масштабирования и другие параметры вычислений для рабочей нагрузки. Короче говоря, начальные пулы обеспечивают быстрый предварительно настроенный Spark, а настраиваемые пулы Spark обеспечивают более глубокий контроль и гибкость.

Изображение вычислительной платформы Spark с начальными пулами и настраиваемыми пулами Spark.

Начальные пулы

Начальные пулы — это быстрый и простой способ использования Spark на платформе Microsoft Fabric в течение секунд. Сеансы Spark можно использовать сразу, а не ожидать, пока Spark настроит узлы для вас, что поможет вам быстрее использовать данные и получить аналитические сведения.

Изображение таблицы с конфигурацией начального пула.

Начальные пулы имеют кластеры Apache Spark с сеансами, которые всегда включены и готовы к вашим запросам. Они используют узлы среднего размера, которые динамически масштабируются в зависимости от потребностей задания Spark.

Схема, показывающая высокоуровневую структуру начальных пулов.

При использовании начального пула без дополнительных зависимостей библиотеки или пользовательских свойств Spark сеанс обычно начинается в 5–10 секунд. Это возможно, так как кластер уже запущен и не требует времени подготовки.

Примечание.

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

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

Пользовательские библиотеки или свойства Spark. Если вы настроили библиотеки или настраиваемые параметры в вашей среде, Spark должен персонализировать сеанс после его создания. Этот процесс может увеличить время запуска примерно на 30 секунд до 5 минут, в зависимости от количества и размера зависимостей вашей библиотеки.

Начальные пулы в вашем регионе полностью используются: в редких случаях начальные пулы региона могут быть временно исчерпаны из-за высокого трафика. В этом случае Структура запускает новый кластер для размещения запроса, что занимает около 2–5 минут. После того как новый кластер будет доступен, сеанс начнется. Если у вас также есть пользовательские библиотеки для установки, добавьте дополнительные 30 секунд до 5 минут , необходимых для персонализации.

Расширенные функции сети или безопасности (частные каналы или управляемые виртуальные сети): если в рабочей области есть сетевые функции, такие как частные каналы клиента или управляемые виртуальные сети, начальные пулы не поддерживаются. В этой ситуации Fabric должен создать кластер по запросу, который добавляет 2–5 минут в время начала сеанса. Если у вас также есть зависимости библиотеки, этот шаг персонализации может добавить еще от 30 секунд до 5 минут.

Ниже приведены несколько примеров сценариев для иллюстрации потенциального времени начала:

Сценарий Обычное время запуска
параметры по умолчанию, без библиотек 5 – 10 секунд
параметры по умолчанию и библиотечные зависимости 5 – 10 секунд + 30 секунд – 5 минут (для настройки библиотеки)
высокий трафик в регионе, библиотек нет 2 – 5 минут
высокий трафик + зависимости библиотеки 2 – 5 минут + 30 секунд – 5 минут (для библиотек)
Сетевая безопасность (Private Links/VNet), без библиотек 2 – 5 минут
безопасность сети и зависимости библиотек 2 – 5 минут + 30 секунд – 5 минут (для библиотек)

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

Схема, на которой показаны основные этапы выставления счетов стартовых пулов.

Например, если вы отправляете задание ноутбука в стартовый пул, плата взимается только за период времени, когда сеанс ноутбука активен. Оплачиваемое время не включает время простоя или время, затраченное на персонализацию сеанса с помощью контекста Spark. Дополнительные сведения см. в разделе "Настройка начальных пулов" в Fabric.

Пулы Spark

Пул Spark — это способ рассказать Spark, какие ресурсы требуются для задач анализа данных. Вы можете дать имя вашему пулу Spark и выбрать, сколько узлов будет в пуле и какого они будут размера (то есть какие компьютеры выполняют эту работу). Вы также можете указать Spark, как настроить количество узлов в зависимости от того, сколько работ у вас есть. Создание пула Spark бесплатно; вы платите только при выполнении задания Spark в пуле, а затем Spark настраивает узлы для вас.

Если вы не используете пул Spark в течение 2 минут после истечения срока действия сеанса, пул Spark будет освобожден. Этот период срока действия сеанса по умолчанию имеет значение 20 минут, и его можно изменить, если вы хотите. Если вы являетесь администратором рабочей области, вы также можете создать настраиваемые пулы Spark для рабочей области и сделать их вариантом по умолчанию для других пользователей. Таким образом, вы можете сэкономить время и избежать настройки нового пула Spark при каждом запуске записной книжки или задания Spark. Запуск пользовательских пулов Spark занимает около трех минут, так как Spark должен получить узлы из Azure.

Вы даже можете создать пулы Spark с одним узлом, установив минимальное количество узлов на один, поэтому драйвер и исполнитель выполняются на одном узле, который поставляется с возможностью восстановления высокой доступности (HA) и подходит для небольших рабочих нагрузок.

Размер и количество узлов, которые можно использовать в пользовательском пуле Spark, зависит от емкости Microsoft Fabric. Емкость — это мера того, сколько вычислительных ресурсов можно использовать. Один из способов подумать об этом заключается в том, что два виртуальных ядра Apache Spark (единица вычислений Spark) равны одной единице емкости.

Примечание.

В Apache Spark пользователи получают два виртуальных ядра Apache Spark для каждой единицы емкости, которые они резервируют в рамках SKU. Одна единица емкости = два виртуальных ядра Spark. Например, F64 дает 128 виртуальных ядер Spark, а умножитель на 3x увеличивает это значение до 384 виртуальных ядер Spark.

Например, номер SKU SKU Fabric имеет 64 единиц емкости, что эквивалентно 384 виртуальным ядрам Spark (64 * 2 * 3X Умножитель всплеска). Эти виртуальные ядра Spark можно использовать для создания узлов разных размеров для пользовательского пула Spark, если общее количество виртуальных ядер Spark не превышает 384.

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

Схема, на которой показаны высокоуровневые этапы выставления счетов пользовательских пулов.

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

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

Номер SKU емкости Fabric Единицы емкости Максимальное количество виртуальных ядер Spark с фактором ускорения Размер узла Максимальное количество узлов
F64 64 384 Небольшой 96
F64 64 384 Средняя 48
F64 64 384 Большой двадцать четыре
F64 64 384 Размер XL 12
F64 64 384 XX-большой 6

Примечание.

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

Узлы

Экземпляр пула Apache Spark состоит из одного головного узла и одного или нескольких рабочих узлов. Экземпляр Spark может начинаться как минимум с одного узла. Головной узел выполняет такие службы управления, как Livy, YARN Resource Manager, ZooKeeper и драйвер Apache Spark. Все узлы выполняют службы, такие как агент узла и диспетчер узлов YARN. Все рабочие узлы запускают службу исполнителя Apache Spark.

Примечание.

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

Размеры узлов

Пул Spark можно определить с размерами узлов, которые варьируются от небольшого вычислительного узла (с 4 виртуальными ядрами и 32 ГБ памяти) до двойного большого вычислительного узла (с 64 виртуальными ядрами и 512 ГБ памяти на узел). Размеры узлов можно изменить после создания пула, хотя активный сеанс должен быть перезапущен.

Размер Виртуальное ядро Память
Небольшой 4 32 Гб
Средняя 8 64 ГБ
Большой 16 128 ГБ
Размер XL 32 256 ГБ
XX-большой 64 512 ГБ

Примечание.

Размеры узлов X-Large и XX-Large разрешены только для номеров SKU, отличных от пробной версии Fabric.

Автомасштабирование

Функция автомасштабирования в пулах Apache Spark позволяет вертикально увеличивать и уменьшать количество вычислительных ресурсов в зависимости от объема операций. При включении функции автомасштабирования необходимо задать минимальное и максимальное количество узлов для масштабирования. При отключении функции автомасштабирования количество узлов остается фиксированным. Этот параметр можно изменить после создания пула, хотя может потребоваться перезапустить экземпляр.

Примечание.

По умолчанию для spark.yarn.executor.decommission.enabled задано значение true, что позволяет автоматически завершить работу недоиспользуемых узлов для оптимизации эффективности вычислений. Если предпочтительно менее агрессивное масштабирование, данную конфигурацию можно установить в false.

Динамическое распределение

Динамическое выделение позволяет приложению Apache Spark запрашивать больше исполнителей, если задачи превышают нагрузку, которую могут нести текущие исполнители. Он также освобождает исполнителей при завершении заданий и если приложение Spark перемещается в состояние простоя. Корпоративные пользователи часто находят трудно настроить конфигурации исполнителя, так как они значительно отличаются на разных этапах процесса выполнения задания Spark. Эти конфигурации также зависят от объема обработанных данных, которые изменяются от времени. Вы можете включить параметр динамического выделения исполнителей в рамках конфигурации пула, что позволяет автоматически выделять исполнителей для приложения Spark на основе узлов, доступных в пуле Spark.

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