#apache-spark #azure-databricks #azure-data-lake-gen2
#apache-spark #azure-databricks #azure-data-lake-gen2
Вопрос:
Комментарии:
1. Роль участника хранилища Blob-данных уже назначена.
2. дважды проверьте идентификатор арендатора. Также проверьте, доступен ли AAD с узлов кластера — иногда трафик блокируется NSG
Ответ №1:
В сообщении об ошибке ясно сказано — предоставленный клиент не найден в вашей подписке. Пожалуйста, убедитесь, что идентификатор арендатора доступен в вашей подписке.
Предварительные требования:
Создайте и предоставьте разрешения участнику службы, если для выбранного вами метода доступа требуется участник службы с соответствующими разрешениями, а у вас их нет, выполните следующие действия:
Шаг 1. Создайте приложение Azure AD и участника службы, который может получать доступ к ресурсам. Обратите внимание на следующие свойства:
- идентификатор приложения: идентификатор, который однозначно идентифицирует приложение.
- идентификатор каталога: идентификатор, который однозначно идентифицирует экземпляр Azure AD.
- служебные учетные данные: строка, которую приложение использует для подтверждения своей идентичности.
- storage-account-name: имя учетной записи хранилища.
- имя файловой системы: имя файловой системы.
Шаг 2. Зарегистрируйте участника службы, предоставив правильное назначение роли, например Storage Blob Data Contributor
роли, в учетной записи хранилища данных Azure Gen2.
Шаг 3: Смонтировать Azure Data Lake Gen2, передав значения напрямую.
configs = {"fs.azure.account.auth.type": "OAuth",
"fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id": "06ecxx-xxxxx-xxxx-xxx-xxxef", #Enter <appId> = Application ID
"fs.azure.account.oauth2.client.secret": "1i_7Q-XXXXXXXXXXXXXXXXXXgyC.Szg", #Enter <password> = Client Secret created in AAD
"fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/72f98-xxxx-xxxx-xxx-xx47/oauth2/token", #Enter <tenant> = Tenant ID
"fs.azure.createRemoteFileSystemDuringInitialization": "true"}
dbutils.fs.mount(
source = "abfss://<filesystem>@<StorageName>.dfs.core.windows.net/<Directory>", #Enter <container-name> = filesystem name <storage-account-name> = storage name
mount_point = "/mnt/<mountname>",
extra_configs = configs)
Для получения более подробной информации обратитесь к Azure Databricks — хранилище озера данных Azure Gen2.