我正在经历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 portal删除了我的证书并重新上传。
我现在有点卡住了。
答案 0 :(得分:1)
根据此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管理证书 -
登录Azure完成并且Portal已打开后,运行Windows Azure PowerShell命令以获取设置文件 -
GET-AzurePublishSettingsFile
Get-AzurePublishSettingsFile cmdlet在[Windows Azure管理门户]上打开一个网页,您可以从中下载订阅信息。该信息包含在.publishsettings文件中。
通过运行cmdlet导入要由Windows Azure cmdlet使用的Azure设置文件 -
Import-AzurePublishSettingsFile '<Folder>\YourSubscriptionName-DownlodDate-credentials.publishsettings'
此处,'<Folder>\YourSubscriptionName-DownlodDate-credentials.publishsettings'
是您在工作站上保存的文件。
Import-AzurePublishSettingsFile cmdlet可以做两件事 -
它解析此AzurePublishSettingsFile XML文件,读取证书数据并在本地证书存储区中安装该证书(通常是当前用户/个人) - 证书具有“Windows Azure工具”和#a; as&#39;发给&#39;和&#39;发布者&#39;。
它创建了一个名为&#39; WindowsAzureProfile.xml&#39;在文件夹&#39; C:\ Users \ userName \ AppData \ Roaming \ Windows Azure PowerShell&#39; - 该文件包含订阅名称,SubscriptionId和Azure证书Thumbprint等。
现在你知道了。