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


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 г. После этой даты среда выполнения будет отключена.
  • Для непрерывной поддержки и оптимальной производительности рекомендуется перейти на Apache Spark 3.4.

Примечание.

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

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

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

Можно задать для переменной spark.hadoop.aml.enable_cache trueконфигурации значение , чтобы улучшить время холодного запуска сеанса Spark. При использовании пакетов 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 и связанную виртуальную сеть, настройте управляемую частную конечную точку в учетной записи хранения. Эта конфигурация поможет обеспечить доступ к данным.

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