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


Что такое вычисления Apache Spark в Microsoft Fabric?

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

Среды Microsoft Fabric Обработка данных и Наука о данных работают на полностью управляемой вычислительной платформе Apache Spark. Эта платформа предназначена для обеспечения непревзойденной скорости и эффективности. При использовании начальных пулов можно ожидать быструю инициализацию сеанса Apache Spark( обычно в течение 5–10 секунд без необходимости настройки вручную). Вы также получаете гибкость для настройки пулов Apache Spark в соответствии с конкретными требованиями к проектированию и обработке и анализу данных. Платформа обеспечивает оптимизированную и адаптированную аналитику. Короче говоря, начальный пул — это быстрый способ использования предварительно настроенного Spark, а пул Spark предлагает настройку и гибкость.

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

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

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

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

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

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

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

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

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

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

  3. расширенные сетевые функции или функции безопасности (частные каналы или управляемые виртуальные сети)
    Если в рабочей области есть сетевые функции, такие как частные ссылки арендатора или управляемые виртуальные сети, начальные пулы не поддерживаются. В этой ситуации 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.

Пулы Spark

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

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

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

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

Примечание.

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

Например, номер 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 Большой 24
F64 64 384 Размер XL 12
F64 64 384 XX-большой 6

Примечание.

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

Узлы

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

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

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

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

Примечание.

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

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

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

Примечание.

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

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

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

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