Установка библиотек их хранилища объектов
В этой статье описаны действия, необходимые для установки библиотек из облачного хранилища объектов в Azure Databricks.
Примечание.
Эта статья относится к облачному хранилищу объектов в качестве общей концепции и предполагает, что вы напрямую взаимодействуете с данными, хранящимися в хранилище объектов с помощью URI. Databricks рекомендует использовать тома каталога Unity для настройки доступа к файлам в облачном хранилище объектов. См. раздел "Что такое тома каталога Unity?".
Пользовательские библиотеки JAR и Python Whl можно хранить в облачном хранилище объектов, а не хранить их в корневом каталоге DBFS. Полные сведения о совместимости библиотек см . в библиотеках с областью кластера.
Внимание
Библиотеки можно установить из DBFS при использовании Databricks Runtime 14.3 LTS и ниже. Однако любой пользователь рабочей области может изменять файлы библиотеки, хранящиеся в DBFS. Чтобы повысить безопасность библиотек в рабочей области Azure Databricks, хранение файлов библиотек в корне DBFS устарело и отключено по умолчанию в Databricks Runtime 15.1 и выше. См . статью "Хранение библиотек в корневом каталоге DBFS" не рекомендуется и отключается по умолчанию.
Вместо этого Databricks рекомендует отправлять все библиотеки, включая библиотеки Python, JAR-файлы и соединители Spark, в файлы рабочей области или тома каталога Unity или с помощью репозиториев пакетов библиотеки. Если рабочая нагрузка не поддерживает эти шаблоны, можно также использовать библиотеки, хранящиеся в облачном хранилище объектов.
Загрузка библиотек в хранилище объектов
Библиотеки можно загрузить в хранилище объектов так же, как и другие файлы. У поставщика облачных служб должны быть соответствующие разрешения, чтобы создать контейнеры хранилища объектов или загрузить файлы в облачное хранилище объектов.
Предоставление разрешений только для чтения для хранилища объектов
Databricks рекомендует настроить все привилегии, связанные с установкой библиотеки с разрешениями только для чтения.
Azure Databricks позволяет назначать разрешения безопасности отдельным кластерам, которые управляют доступом к данным в облачном хранилище объектов. Эти политики можно развернуть, чтобы добавить доступ только для чтения к облачному хранилищу объектов, содержащего библиотеки.
Примечание.
В Databricks Runtime 12.2 LTS и ниже нельзя загружать библиотеки JAR при использовании кластеров с режимами общего доступа. В Databricks Runtime 13.3 LTS и более поздних версиях необходимо добавить библиотеки JAR в список разрешений каталога Unity. См . библиотеки allowlist и скрипты инициализации в общих вычислительных ресурсах.
Databricks рекомендует использовать субъекты-службы идентификатора Microsoft Entra для управления доступом к библиотекам, хранящимся в Azure Data Lake Storage 2-го поколения. Чтобы завершить настройку, используйте следующую связанную документацию:
Создайте субъект-службу с разрешениями на чтение и список для нужных больших двоичных объектов. См . раздел "Доступ к хранилищу" с помощью субъекта-службы и идентификатора Microsoft Entra (Azure Active Directory).
Сохраните учетные данные с помощью секретов. См. раздел Секреты.
Задайте свойства в конфигурации Spark и переменных среды при создании кластера, как показано в следующем примере:
Конфигурация Spark:
spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id> spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}} spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
Переменные среды:
SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
(Необязательно) Рефакторинг скриптов инициализации с помощью azcopy или Azure CLI.
Вы можете ссылаться на переменные среды во время настройки кластера в скриптах инициации, чтобы передать учетные данные, хранящиеся в качестве секретов для проверки.
Установка библиотек в кластеры
Чтобы установить библиотеку, хранящуюся в облачном хранилище объектов, в кластер, выполните следующие действия:
- Выберите кластер из списка в пользовательском интерфейсе кластеров.
- Перейдите на вкладку "Библиотеки ".
- Выберите параметр "Путь к файлу " или ADLS .
- Укажите полный URI-путь к объекту библиотеки (например,
abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl
). - Щелкните Установить.
Вы также можете установить библиотеки с помощью REST API или CLI.
Установка библиотек в записные книжки
Вы можете использовать %pip
для установки пользовательских файлов колес Python, хранящихся в хранилище объектов, ограниченном для записной книжки SparkSession. Чтобы использовать этот метод, необходимо хранить библиотеки в общедоступном хранилище объектов или использовать предварительно подписанный URL-адрес.
См. статью Библиотеки Python с областью действия записной книжки.
Примечание.
Библиотеки JAR не могут быть установлены в записной книжке. Необходимо установить JAR-библиотеки на уровне кластера.