尝试通过控制台中的Hadoop客户端使用MSI(Azure托管身份)连接到Azure Data Lake Storage Gen2并收到错误
ls: AADToken: HTTP connection failed for getting token from AzureAD. Http response: 400 Bad Request*
通过共享密钥的连接可以正常工作。
完成了什么
要使用以下命令进行连接:
hadoop fs -Dfs.azure.ssl.channel.mode=Default_JSSE -Dfs.azure.account.oauth.provider.type=org.apache.hadoop.fs.azurebfs.oauth2.MsiTokenProvider -Dfs.azure.account.auth.type=OAuth -Dfs.azure.account.oauth2.msi.tenant=<tenant_ID> -Dfs.azure.account.oauth2.client.id=<Client_ID> -ls abfss://<filesystem_name>2@<storage_account_name>.dfs.core.windows.net/
是错还是错过?请指教。
谢谢!
答案 0 :(得分:1)
添加我的评论作为答案:
无需执行步骤3,如果启用了VM的MSI,它将自动在租户中创建一个服务主体,它与VM的名称相同,具有自己的客户端ID。您可以在门户的Azure Active Directory中找到它->企业应用程序->使用您的VM名称(用All Applications
进行过滤)搜索。
在步骤5中,您需要赋予MSI Storage Blob Data Owner
角色。