Настройки пула Apache Spark в Azure Synapse Analytics
Пул Spark — это набор метаданных с требованиями к вычислительным ресурсам и характеристиками поведения создаваемого экземпляра Spark. Эти характеристики среди прочего включают имя, количество узлов, размер узла, поведение при масштабировании и срок жизни. Сам пул Spark не использует ресурсы. За создание пулов Spark плата не взимается. Плата взимается только после выполнения задания Spark в целевом пуле Spark и создания экземпляра Spark по запросу.
Вы можете узнать, как создать пул Spark в Synapse Analytics и просмотреть все его свойства, здесь.
Изолированные вычислительные ресурсы
Параметр "Изолированные вычислительные ресурсы" обеспечивает дополнительную защиту вычислительных ресурсов Spark от недоверенных служб путем выделения физического вычислительного ресурса одному клиенту. Параметр "Изолированные вычислительные ресурсы" лучше всего подходит для рабочих нагрузок, требующих высокого уровня изоляции от других рабочих нагрузок клиента, например для обеспечения соответствия нормативным требованиям. Параметр "Изолированные вычислительные ресурсы" доступен только для узлов размера "Сверхкрупный" (80 виртуальных ЦП/504 ГБ) и доступен только в указанных ниже регионах. Изолированный параметр вычислений можно включить или отключить после создания пула, хотя экземпляр может потребоваться перезапустить. Если вы планируете включить эту функцию в будущем, убедитесь, что рабочая область Synapse создана в регионе, поддерживающем изолированные вычислительные ресурсы.
- Восточная часть США
- западная часть США 2
- Центрально-южная часть США
- US Gov (Аризона)
- US Gov (Вирджиния)
Узлы
Экземпляр пула Apache Spark состоит из одного головного узла и двух или более рабочих узлов. То есть минимальный размер пула — три узла. Головной узел запускает дополнительные службы управления, такие как Livy, Yarn Resource Manager, Zookeeper и драйвер Spark. Все узлы запускают такие службы, как "агент узла" и "диспетчер ресурсов Yarn". Все рабочие узлы запускают службу "исполнитель Spark".
Размеры узлов
Пул Spark можно определить с размерами узлов, которые варьируются от небольшого вычислительного узла с 4 виртуальными ядрами и 32 ГБ памяти до вычислительного узла XXLarge с 64 виртуальными ядрами и 432 ГБ памяти на узел. Размеры узлов можно изменить после создания пула, хотя экземпляр может потребоваться перезапустить.
Размер | Виртуальное ядро | Память |
---|---|---|
Небольшой | 4 | 32 Гб |
Средние | 8 | 64 ГБ |
Большой | 16 | 128 ГБ |
Очень большая | 32 | 256 ГБ |
Экстрабольшой | 64 | 432 ГБ |
Сверхкрупный (изолированные вычислительные ресурсы) | 80 | 504 ГБ |
Автомасштабирование
Функция автомасштабирования в пулах Apache Spark позволяет вертикально увеличивать и уменьшать количество вычислительных ресурсов в зависимости от объема операций. Если функция автомасштабирования включена, можно задать минимальное и максимальное количество узлов для масштабирования. Если функция автомасштабирования выключена, количество установленных узлов останется неизменным. Этот параметр можно изменить после создания пула, хотя экземпляр может потребоваться перезапустить.
Хранилище эластичного пула
Пулы Apache Spark теперь поддерживают хранилище эластичного пула. Хранилище эластичного пула позволяет подсистеме Spark отслеживать временное хранилище рабочего узла и при необходимости подключать дополнительные диски. Пулы Apache Spark используют временное дисковое хранилище во время создания экземпляра пула. Задания Spark записывают выходные данные сопоставления в случайном порядке и временно записанные данные на локальные диски виртуальных машин. Примеры операций, которые могут использовать локальный диск, — сортировка, кэш и сохранение. При истечении временного места на диске виртуальной машины задания Spark могут завершиться ошибкой "Вне места на диске" (java.io.IOException: не осталось места на устройстве). При возникновении ошибок "Недостаточно места на диске" большая часть действий по предотвращению сбоев заданий перекладывается на клиента, который должен перенастроить задания Spark (например, изменить количество секций) или кластеры (например, добавить дополнительные узлы в кластер). Эти ошибки могут быть не согласованы, и пользователь может в конечном итоге экспериментировать в значительной степени путем выполнения рабочих заданий. Этот процесс может быть дорогостоящим для пользователя по нескольким показателям:
- Время, потраченное впустую. Клиентам приходится много экспериментировать с конфигурациями заданий методом проб и ошибок, а для принятия правильного решения требуется понимать внутренние метрики Spark.
- Впустую израсходованные ресурсы. Поскольку рабочие задания могут обрабатывать различный объем данных, задания Spark могут недетерминированно завершаться сбоем в случае отсутствия избыточных ресурсов. Например, рассмотрим проблему с отклонением данных, что может привести к тому, что несколько узлов требуют больше места на диске, чем другие. В настоящее время в Synapse каждый узел в кластере получает одинаковый размер пространства на диске, и увеличение дискового пространства на всех узлах не является идеальным решением и приводит к огромным потерям.
- Замедление выполнения задания. В гипотетической ситуации, когда мы решаем проблему путем автомасштабирования узлов (предполагая, что затраты не являются проблемой для конечного клиента), добавление вычислительного узла по-прежнему является дорогостоящим процессом (занимает несколько минут) в отличие от добавления хранилища (занимает несколько секунд).
Никаких действий выполнять не требуется, а в результате у вас должно стать меньше сбоев заданий.
Примечание.
Хранилище эластичного пула Azure Synapse в настоящее время находится в общедоступной предварительной версии. В общедоступной предварительной версии плата за использование хранилища эластичного пула не взимается.
Автоматическая приостановка
Функция автоматической приостановки высвобождает ресурсы, после заданного периода бездействия, уменьшая общую стоимость пула Apache Spark. Время бездействия (в минутах) можно задать после включения этой функции. Функция автоматической приостановки не зависит от функции автомасштабирования. Использование ресурсов можно приостановить, если автомасштабирование включено или отключено. Эту настройку можно изменить после создания пула, но при этом потребуется перезапустить активные сеансы.