Hadoop客户端Azure Data Lake Gen2令牌访问-AADToken:HTTP连接因从AzureAD获取令牌而失败。 Http响应:400错误请求

时间:2019-09-04 12:33:41

标签: azure hadoop azure-data-lake

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

    - (void)setMaskTo:(UIView*)view byRoundingCorners: 
   (UIRectCorner)corners
   {
      UIBezierPath *rounded = [UIBezierPath 
      bezierPathWithRoundedRect:view.bounds

      byRoundingCorners:corners

      cornerRadii:CGSizeMake(200.0, 200.0)];
      CAShapeLayer *shape = [[CAShapeLayer alloc] init];
      [shape setPath:rounded.CGPath];
      view.layer.mask = shape;
    }

如果我将令牌放入“”中,则错误会有所不同

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

完成了什么

  1. 使用https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-quickstart-create-account

  2. 创建的存储帐户
  3. 使用https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal

  4. 创建的Azure AD应用程序
  5. 从第二步开始就获得管理员同意的申请-https://i.imgur.com/myMtkeu.png

  6. 还授予管理员同意名称为步骤2 https://i.imgur.com/BPX48NE.png

  7. 中的应用程序的企业应用程序的权限

步骤3和4如此处所述-https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-user-consent#grant-admin-consent-when-registering-an-app-in-the-azure-portal

  1. 然后我生成了一个授权码
id_token:<TOKEN VALUE>: Unknown command
Usage: hadoop fs [generic options]
  1. 并获得了令牌
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

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

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)

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

1 个答案:

答案 0 :(得分:0)

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

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