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

Дальнейшие действия