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


Управление библиотеками для пулов Apache Spark в Azure Synapse Analytics

После идентификации пакетов Scala, Java, R (предварительная версия) или Python, которые вы хотите использовать или обновить для приложения Spark, можно установить или удалить их из пула Spark. Библиотеки уровня пула доступны для всех записных книжек и заданий, выполняющихся в пуле.

Есть два основных способа установки библиотеки в пуле Spark:

  • Установите библиотеку рабочей области, которая была отправлена в виде пакета рабочей области.
  • Чтобы обновить библиотеки Python, предоставьте файл спецификации среды requirements.txt или Conda environment.yml для установки пакетов из репозиториев, таких как PyPI или Conda-Forge. Дополнительные сведения см. в разделе "Форматы спецификаций среды".

После сохранения изменений задание Spark запускает установку и кэширует итоговую среду для последующего повторного использования. После завершения задания новые задания Spark или сеансы записной книжки используют обновленные библиотеки пула.

Внимание

  • Если пакет, который вы устанавливаете, большой или занимает много времени для установки, время запуска экземпляра Spark затрагивается.
  • Изменение версии PySpark, Python, Scala/Java, .NET, R или Spark не поддерживается.
  • Установка пакетов из внешних репозиториев, таких как PyPI, Conda-Forge или каналы Conda по умолчанию, не поддерживаются в рабочих областях с поддержкой защиты от кражи данных.

Управление пакетами из Synapse Studio или на портале Azure

Библиотеки пула Spark можно управлять из Synapse Studio или портал Azure.

  1. В портал Azure перейдите в рабочую область Azure Synapse Analytics.

  2. В разделе пулов Аналитики выберите вкладку пулов Apache Spark и выберите пул Spark из списка.

  3. Выберите Пакеты из раздела Параметры пула Spark.

    Снимок экрана: выделена кнопка

  4. Для библиотек веб-каналов Python отправьте файл конфигурации среды с помощью селектора файлов в разделе Пакеты.

  5. Вы также можете выбрать дополнительные пакеты рабочей области, чтобы добавить Jar, Wheel или Tar.gz файлы в пул.

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

  7. После сохранения изменений системное задание активируется для установки и кэширования указанных библиотек. Этот процесс позволяет сократить общее время запуска сеанса.

  8. После успешного завершения задания все новые сеансы собирают обновленные библиотеки пула.

Внимание

Выбрав параметр Принудительно создавать новые параметры, вы завершаете все текущие сеансы для выбранного пула Spark. После завершения сеансов необходимо дождаться перезапуска пула.

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

Отслеживание хода выполнения установки

Зарезервированное системное задание Spark запускается каждый раз при обновлении пула с использованием нового набора библиотек. Это задание Spark помогает отслеживать состояние установки библиотек. Если установка завершается ошибкой из-за конфликтов библиотек или других проблем, пул Spark возвращается к предыдущему или стандартному состоянию.

Кроме того, пользователи могут проверить журналы установки, чтобы определить конфликты зависимостей или увидеть, какие библиотеки были установлены во время обновления пула.

Для просмотра этих журналов выполните следующие действия.

  1. В Synapse Studio перейдите в список приложений Spark на вкладке "Монитор ".

  2. Выберите системное задание приложения Spark, соответствующее обновлению пула. Эти системные задания выполняются под заголовком SystemReservedJob-LibraryManagement.

    Снимок экрана, на котором выделено зарезервированное системное задание библиотеки.

  3. Переключитесь на просмотр журналов driver и stdout.

  4. Результаты содержат журналы, связанные с установкой зависимостей.

    Снимок экрана, на котором выделены результаты зарезервированного системного задания библиотеки.

Форматы спецификаций среды

PIP requirements.txt

Для обновления среды можно использовать файл requirements.txt (выходные данные команды pip freeze). При обновлении пула пакеты, перечисленные в этом файле, загружаются из PyPI. Затем все зависимости кэшируются и сохраняются для последующего повторного использования в пуле.

В следующем фрагменте кода показан формат файла requirements. Имя пакета PyPI отображается вместе с точной версией. Этот файл соответствует формату, описанному в справочной документации по pip freeze.

В этом примере закрепляется конкретная версия.

absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10

Формат YML

Кроме того, можно предоставить environment.yml файл для обновления среды пула. Пакеты, перечисленные в этом файле, загружаются из каналов Conda по умолчанию, Conda-Forge и PyPI. Можно указать другие каналы или удалить каналы по умолчанию с помощью параметров конфигурации.

В этом примере указываются каналы и зависимости Conda/PyPI.

name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
  - matplotlib
  - koalas==1.7.0

Дополнительные сведения о создании среды из этого файла environment.yml см. в разделе "Активация среды".