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


Управление библиотеками для пулов 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.

Чтобы обновить или добавить библиотеки в пул Spark, выполните указанные ниже действия.

  1. Перейдите к рабочей области Azure Synapse Analytics с портала Azure.

    При обновлении с портала Azure:

    • В разделе Ресурсы Synapse перейдите на вкладку Пулы Apache Spark и выберите пул Spark из списка.

    • Выберите Пакеты из раздела Параметры пула Spark. Снимок экрана: выделена кнопка

    При обновлении из Synapse Studio:

    • Выберите Управление на главной панели навигации, а затем выберите Пулы Apache Spark.

    • Выберите раздел Пакеты для определенного пула Spark. Снимок экрана: журналы установки библиотек.

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

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

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

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

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

Важно!

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

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

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

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

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

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

  1. Перейдите в список приложений 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 см. в разделе Создание среды из файла environment.yml.

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