gpt4 book ai didi

azure - Hadoop 客户端 Azure Data Lake Gen2 token 访问 - AADToken : HTTP connection failed for getting token from AzureAD. Http 响应:400 错误请求

转载 作者:行者123 更新时间:2023-12-02 18:37:40 24 4
gpt4 key购买 nike

尝试通过控制台中的 Hadoop 客户端使用 token 连接到 Azure Data Lake Storage Gen2 并收到错误

ls: AADToken: HTTP connection failed for getting token from AzureAD. Http response: 400 Bad Request

如果我将 token 放入“”,错误会有所不同

id_token:<TOKEN VALUE>: Unknown command
Usage: hadoop fs [generic options]

做了什么:

  1. 使用 https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-quickstart-create-account 创建存储帐户

  2. 使用 https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal 创建了 Azure AD 应用程序

  3. 从第二步开始就已授予管理员对申请的同意 - /image/8LtSb.png

  4. 还向名称为步骤 2 中的应用的企业应用授予管理员同意 /image/u8LkW.png

第 3 步和第 4 步已按照此处所述完成 - https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/configure-user-consent#grant-admin-consent-when-registering-an-app-in-the-azure-portal

  • 然后我生成了一个授权代码
  • https://login.microsoftonline.com/<TENANT ID>/oauth2/authorize?client_id=<CLIENT ID>&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%2Fmyapp%2F&response_mode=query&resource=https://datalake.azure.net/&state=12345
  • 并获得了 token
  • curl -X POST https://login.microsoftonline.com/<TENANT ID>/oauth2/token \
    -F redirect_uri=https://localhost/myapp/ \
    -F grant_type=authorization_code \
    -F resource=https://datalake.azure.net \
    -F client_id=<CLIENT ID> \
    -F client_secret=<CLIENT SECRET> \
    -F code=OAQABAAIAAAAP0wLlqdLVToOpA4kwzSnxLhHJrARX8557... (Authorization code)

    根据Apache documentation我创建了一个控制台命令

    hadoop fs -Dfs.azure.ssl.channel.mode=Default_JSSE
    -Dfs.azure.account.auth.type=OAuth
    -Dfs.azure.account.oauth.provider.type=org.apache.hadoop.fs.azurebfs.oauth2.RefreshTokenBasedTokenProvider
    -Dfs.azure.account.oauth2.client.id=<CLIENT ID>
    -Dfs.azure.account.oauth2.refresh.token=<TOKEN>
    -ls abfss://<CONTAINER NAME>@<STORAGE ACCOUNT>.dfs.core.windows.net/

    因此下面的命令应该显示容器中的文件夹和文件的列表。Azure 中的命令或容器配置有问题吗?请指教。

    最佳答案

    您使用的是社区版的databricks吗?我遇到了同样的问题,因为我的空间不足或超出了 dbfs 上的文件数量,所以我想我只需在 azure 上安装我自己的存储帐户即可,并遇到了与您相同的问题。

    我启动了自己的 databricks 实例,并能够成功挂载自己的存储,但在社区版上运行相同的代码会导致错误。

    关于azure - Hadoop 客户端 Azure Data Lake Gen2 token 访问 - AADToken : HTTP connection failed for getting token from AzureAD. Http 响应:400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57788504/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com