Кирпичи данных не могут получить доступ к озеру данных Gen1 при попытке перечислить каталог - PullRequest
0 голосов
/ 22 марта 2019

Я использую (ну ... пытаюсь использовать) Azure Databricks, и я создал блокнот.

Я бы хотел, чтобы ноутбук подключил мое озеро данных Azure (Gen1) и преобразовал данные. Я следовал документации и поместил код в первую ячейку моего блокнота:

spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("dfs.adls.oauth2.client.id", "**using the application ID of the registered application**")
spark.conf.set("dfs.adls.oauth2.credential", "**using one of the registered application keys**")
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.microsoftonline.com/**using my-tenant-id**/oauth2/token")

dbutils.fs.ls("adl://**using my data lake uri**.azuredatalakestore.net/tenantdata/events")

Выполнение завершается с этой ошибкой:

com.microsoft.azure.datalake.store.ADLException: Ошибка перечисления каталог /

Сбой операции null с исключением: java.io.IOException: сервер возвращенный код ответа HTTP: 400 для URL: https://login.microsoftonline.com/using my-tenant-id / oauth2 / token Последнее возникшее исключение возникло после 5 попыток.

[java.io.IOException, java.io.IOException, java.io.IOException, java.io.IOException, java.io.IOException] [ServerRequestId: null] в com.microsoft.azure.datalake.store.ADLStoreClient.getExceptionFromResponse (ADLStoreClient.java:1169) в com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectoryInternal (ADLStoreClient.java:558) в com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectory (ADLStoreClient.java:534) в com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectory (ADLStoreClient.java:398) в com.microsoft.azure.datalake.store.ADLStoreClient.enumerateDirectory (ADLStoreClient.java:384)

Я присвоил зарегистрированному приложению роль Reader для озера данных:

enter image description here

Вопрос

Как я могу разрешить Spark доступ к озеру данных?

Обновление

Я предоставил папкам tenantdata и events Read и Execute доступ:

Granted persmissions on folder

1 Ответ

1 голос
/ 25 марта 2019

Роли RBAC на озере Gen1 не предоставляют доступ к данным (только сам ресурс), за исключением роли владельца, которая предоставляет доступ суперпользователя и предоставляет полный доступ к данным.

Вы должныпредоставить доступ к самим папкам / файлам с помощью проводника данных на портале или загрузочного хранилища с помощью разрешений POSIX.

В этом руководстве подробно объясняется, как это сделать: https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-access-control

Ссылка: https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-secure-data

Только роль Владелец автоматически разрешает доступ к файловой системе.Для Contributor, Reader и всех других ролей требуются списки ACL для обеспечения любого уровня доступа к папкам и файлам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...