Apache Spark в Машинное обучение Azure

Машинное обучение Azure интеграция с Azure Synapse Analytics обеспечивает простой доступ к распределенным вычислительным ресурсам через платформу Apache Spark. Эта интеграция обеспечивает следующие возможности вычислений Apache Spark:

  • Бессерверные вычисления Spark
  • Присоединенный пул Synapse Spark

Бессерверные вычисления Spark

С помощью платформы Apache Spark Машинное обучение Azure бессерверные вычисления Spark — самый простой способ выполнения задач распределенных вычислений в среде Машинное обучение Azure. Машинное обучение Azure предлагает полностью управляемый бессерверный вычислительный кластер Apache Spark по запросу. Пользователи могут избежать необходимости создавать рабочую область Azure Synapse и пул Synapse Spark.

Пользователи могут определять ресурсы, включая тип экземпляра и версию среды выполнения Apache Spark. Затем они могут использовать эти ресурсы для доступа к бессерверным вычислениям Spark в записных книжках Машинное обучение Azure для:

Что необходимо учесть

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

Преимущества.

  • Никаких зависимостей от создания других ресурсов Azure для Apache Spark (инфраструктура Azure Synapse работает под капотом).
  • Для создания ресурсов, связанных с Azure Synapse, не требуются разрешения на подписку.
  • Не требуется квоты пула SQL.

Недостатки.

  • Постоянное хранилище метаданных Hive отсутствует. Бессерверные вычисления Spark поддерживают только в памяти SQL Spark.
  • Нет доступных таблиц или баз данных.
  • Отсутствует интеграция Azure Purview.
  • Нет доступных связанных служб.
  • Меньше источников данных и соединителей.
  • Конфигурация уровня пула отсутствует.
  • Нет управления библиотекой уровня пула.
  • Только частичная поддержка mssparkutils.

Сетевая конфигурация

Чтобы использовать сетевую изоляцию с Машинное обучение Azure и бессерверными вычислениями Spark, используйте управляемую виртуальную сеть.

Периоды бездействия и механизм разбиений

Сначала запуск бессерверного ресурса вычислений Spark (холодного запуска) может потребоваться три–пять минут, чтобы запустить сам сеанс Spark. Автоматическая подготовка бессерверных вычислений Spark, поддерживаемая Azure Synapse, вызывает эту задержку. После подготовки бессерверных вычислений Spark и запуска сеанса Apache Spark последующие выполнения кода (теплый запуск) не будут испытывать эту задержку.

Конфигурация сеанса Spark предлагает параметр, определяющий время ожидания сеанса (в минутах). Сеанс Spark завершится после периода бездействия, превышающего определяемое пользователем время ожидания. Если другой сеанс Spark не запускается в течение следующих 10 минут, ресурсы, подготовленные для бессерверных вычислений Spark, будут удалены.

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

Расширяемая схема, в котором показаны сценарии для периода бездействия сеанса Apache Spark и разрыва кластера.

Пакеты Conda уровня сеанса

Файл YAML зависимостей Conda может определять множество пакетов Conda уровня сеанса в конфигурации сеанса. Время ожидания сеанса будет истекать, если для установки пакетов Conda, определенных в YAML-файле, требуется более 15 минут. Сначала важно проверка, доступен ли необходимый пакет в базовом образе Azure Synapse. Для этого пользователи должны следовать ссылке, чтобы определить пакеты, доступные в базовом образе для используемой версии Apache Spark:

Внимание

Среда выполнения Azure Synapse для Apache Spark: объявления

  • Среда выполнения Azure Synapse для Apache Spark 3.2:
    • Дата объявления EOLA: 8 июля 2023 г.
    • Дата окончания поддержки: 8 июля 2024 г. После этой даты среда выполнения будет отключена.
  • Для непрерывной поддержки и оптимальной производительности рекомендуется перейти на

Примечание.

Для пакета Conda уровня сеанса:

  • Холодное начало потребуется около десяти до пятнадцати минут.
  • Теплое начало, использующее тот же пакет Conda, потребуется около одной минуты.
  • Теплое начало, с другим пакетом Conda, также потребуется около десяти до пятнадцати минут.
  • Если установленный пакет большой или требует длительного времени установки, это может повлиять на время запуска экземпляра Spark.
  • Изменение версии PySpark, Python, Scala/Java, .NET или Spark не поддерживается.
  • Образы Docker не поддерживаются.

Улучшение времени холодного запуска сеанса при использовании пакетов Conda уровня сеанса

Вы можете улучшить время холодного запуска сеанса Spark, задав для переменной spark.hadoop.aml.enable_cache конфигурации значение true. Холодный запуск сеанса с пакетами Conda уровня сеанса обычно занимает от 10 до 15 минут при первом запуске сеанса. Однако последующий холодный сеанс начинается от трех до пяти минут. Определите переменную конфигурации в пользовательском интерфейсе настройки сеанса в разделе "Параметры конфигурации".

Расширяемая схема, показывающий тег конфигурации сеанса Spark, который включает кэш.

Присоединенный пул Synapse Spark

Пул Spark, созданный в рабочей области Azure Synapse, становится доступным в рабочей области Машинное обучение Azure с присоединенным пулом Synapse Spark. Этот параметр подходит для пользователей, которые хотят повторно использовать существующий пул Synapse Spark.

Вложение пула Synapse Spark в рабочую область Машинное обучение Azure требует других действий, прежде чем использовать пул в Машинное обучение Azure для:

Подключенный пул Synapse Spark предоставляет доступ к собственным функциям Azure Synapse. Пользователь отвечает за подготовку пула Synapse Spark, присоединение, настройку и управление.

Конфигурация сеанса Spark для подключенного пула Synapse Spark также предлагает возможность определить время ожидания сеанса (в минутах). Поведение времени ожидания сеанса напоминает описание в предыдущем разделе, за исключением того, что связанные ресурсы никогда не удаляются после истечения времени ожидания сеанса.

Определение размера кластера Spark

В заданиях Spark Машинное обучение Azure можно определить размер кластера Spark с тремя значениями параметров:

  • Количество исполнителей
  • Ядра исполнителя
  • Память исполнителя

Следует рассмотреть Машинное обучение Azure исполнителя Apache Spark в качестве эквивалента рабочим узлам Azure Spark. Пример может объяснить эти параметры. Предположим, что вы определили количество исполнителей как 6 (эквивалентно шести рабочим узлам), количество ядер исполнителя в виде 4, а память исполнителя — 28 ГБ. Затем задание Spark имеет доступ к кластеру с 24 ядрами в общей сложности и 168 ГБ памяти.

Обеспечение доступа к ресурсам для заданий Spark

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

Пул Spark Поддерживаемые удостоверения Удостоверение по умолчанию
Бессерверные вычисления Spark Удостоверение пользователя, назначаемое пользователем управляемое удостоверение, присоединенное к рабочей области Удостоверение пользователя
Присоединенный пул Synapse Spark Удостоверение пользователя, назначаемое пользователем управляемое удостоверение, присоединенное к подключенному пулу Synapse Spark, назначаемое системой управляемое удостоверение подключенного пула Synapse Spark Назначаемое системой управляемое удостоверение подключенного пула Synapse Spark

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

Примечание.

  • Чтобы обеспечить успешное выполнение задания Spark, назначьте участника и служба хранилища роли участника данных BLOB-объектов (в учетной записи хранения Azure, используемой для ввода и вывода данных) идентификатору, который будет использоваться для отправки задания Spark.
  • Если подключенный пул Synapse Spark указывает на пул Synapse Spark в рабочей области Azure Synapse и связанную виртуальную сеть, настройте управляемую частную конечную точку в учетной записи хранения. Эта конфигурация поможет обеспечить доступ к данным.

Следующие шаги