使用 powershell 连接到 WebHDFS:如何设置不同的凭据

问题描述

我正在尝试通过 powershell 连接 te WebHDFS,并且一直在检索一些错误。我认为 401 错误是因为凭据。

我一直使用的代码是:

Invoke-RestMethod -UseDefaultCredentials -Method Put -inFile c:\Users\petter\Documents\example.txt -Uri "https://drona-haproxy.corp.com:2000/gateway/drona/webhdfs/v1/user/petter/example.txt?op=CREATE"

如何在“Invoke-RestMethod”下的 Credentials 中设置不同的参数?

我一直在检索的错误是:

Invoke-RestMethod : The Remote Server returned an error: (401) Unauthorized.
At line:1 char:1
+ Invoke-RestMethod -Method Put -inFile c:\Users\petter\Documents\load ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod],WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

解决方法

您可以将 Credential 参数与 Invoke-RestMethod 一起使用。

我原以为您需要删除 -UseDefaultCredentials,但 the Invoke-RestMethod documentation 说它们属于同一参数集 - 不确定它是如何工作的。

相关:WebHDFS Authentication