我正在经历http://azure.microsoft.com/en-us/documentation/articles/hdinsight-use-hive/ 但你得
Start-AzureHDInsightJob : Request failed after (12) attempts over a period of (00:03:10.4800236) with code: Forbidden
Content:<Error xmlns="http://schemas.microsoft.com/windowsazure"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Code>ForbiddenError</Code><Message>The server failed to authenticate
the request. Verify that the certificate is valid and is associated with this subscription.</Message></Error>
At D:\sandbox\hadoop\hive\ProcessExampleSampleLog.ps1:15 char:12
+ $hiveJob = Start-AzureHDInsightJob -Cluster $clusterName -JobDefinition $hiveJob ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Start-AzureHDInsightJob], HttpLayerException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.HDInsight.Framework.Core.Library.WebRequest.HttpLayerExce
ption,Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.StartAzureHDInsightJobCmdlet
我通过 Get-AzureSubscription -Current
这给了我:
SubscriptionName : Dev
SubscriptionId : <CORRECT SUBSCRIPTION ID>
<SNIP>
IsDefault : False
Certificate : [Subject]
CN=Kevin
[Issuer]
CN=Kevin
[Serial Number]
<REDACTED>
[Not Before]
13/05/2013 14:27:18
[Not After]
19/04/2113 14:27:18
[Thumbprint]
<THUMBPRINT THAT MATCHES IN AZURE PORTAL WITH DEV SUBSCRIPTION>
CurrentStorageAccountName : <DIFFERENT STORAGE NAME TO THE HDINSIGHT ONE>
ActiveDirectoryUserId : <MY EMAIL>
TokenProvider : Microsoft.WindowsAzure.Commands.Utilities.Common.Authentication.AdalTokenProvider
唯一不匹配的是 CurrentStorageAccountName
上面的不是我在hdinsight中使用的,但这是在查询中设置的。
我处决了 Add-AzureAccount
成功之前,所有这一切也。
我们最近更改了订阅的名称(但在我创建hdinsight集群及其存储帐户之前),这可能是导致此问题的原因。
我确实通过azure门户删除了我的证书并重新发布了它。
我现在有点困了。
1条答案
按热度按时间y1aodyip1#
根据这个http://blogs.msdn.com/b/bigdatasupport/archive/2013/11/21/getting-started-with-hdinsight-powershell-tools-and-sdk.aspx 我没有导入azure发布设置文件。
通过publishsettings文件获取azure管理证书:
在计划使用hdinsight sdk(powershell或.net sdk)的每个工作站上,可以使用以下步骤获取azure管理证书-
使用您的windows azure帐户的凭据登录到windows azure管理门户。
登录到azure完成且门户打开后,运行windows azure powershell命令以获取设置文件-
获取azurepublishsettingsfile
get-azurepublishsettingsfile cmdlet在[windows azure管理门户]上打开一个网页,您可以从中下载订阅信息。该信息包含在.publishsettings文件中。
通过运行cmdlet导入要由windows azure cmdlet使用的azure设置文件-
Import-AzurePublishSettingsFile '<Folder>\YourSubscriptionName-DownlodDate-credentials.publishsettings'
在这里,'<Folder>\YourSubscriptionName-DownlodDate-credentials.publishsettings'
是您在工作站上的步骤2中保存的文件。import-azurepublishsettingsfile cmdlet执行两个操作-
它解析此azurepublishsettingsfile xml文件,读取证书数据并将该证书安装到本地证书存储(通常是当前用户/个人)中-证书的“Microsoft azure工具”为“颁发给”和“颁发者”。
它在文件夹“c:\users\username\appdata\roaming\windows azure powershell”下创建一个名为“windowsazureprofile.xml”的文件,该文件包含订阅名称、订阅ID和azure证书指纹等。
所以现在你知道了。