Что такое вычисления Apache Spark в Microsoft Fabric?
Область применения:✅ Инжиниринг данных и Обработка и анализ данных в Microsoft Fabric
Среды Microsoft Fabric Обработка данных и Наука о данных работают на полностью управляемой вычислительной платформе Apache Spark. Эта платформа предназначена для обеспечения непревзойденной скорости и эффективности. При использовании начальных пулов можно ожидать быструю инициализацию сеанса Apache Spark( обычно в течение 5–10 секунд без необходимости настройки вручную). Вы также получаете гибкость для настройки пулов Apache Spark в соответствии с конкретными требованиями к проектированию и обработке и анализу данных. Платформа обеспечивает оптимизированную и адаптированную аналитику. Короче говоря, начальный пул — это быстрый способ использования предварительно настроенного Spark, а пул Spark предлагает настройку и гибкость.
Начальные пулы
Начальные пулы — это быстрый и простой способ использования Spark на платформе Microsoft Fabric в течение нескольких секунд. Сеансы Spark можно использовать сразу, а не ожидать, пока Spark настроит узлы для вас, что поможет вам быстрее использовать данные и получить аналитические сведения.
Начальные пулы имеют кластеры Apache Spark, которые всегда включены и готовы к вашим запросам. Они используют узлы среднего размера, которые динамически масштабируются в зависимости от потребностей задания Spark.
Если вы используете начальный пул без дополнительных зависимостей библиотеки или пользовательских свойств Spark, сеанс обычно начинается в 5–10 секунд. Это возможно, так как кластер уже запущен и не требует времени подготовки.
Однако существует несколько сценариев, в которых сеанс может занять больше времени, чтобы начать:
у вас есть пользовательские библиотеки или свойства 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.
Пулы 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 система резервирует исполнителей на этапе отправки задания, исходя из минимального числа узлов. Вы указываете максимальные узлы для поддержки успешных сценариев автоматического масштабирования.