HDInsight上的Hive有证书问题

时间:2014-04-29 10:12:01

标签: azure hadoop hive hdinsight

我正在经历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删除了我的证书并重新上传。

我现在有点卡住了。

1 个答案:

答案 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管理证书 -

  1. 使用Windows Azure帐户的凭据登录Windows Azure管理门户。
  2. 登录Azure完成并且Portal已打开后,运行Windows Azure PowerShell命令以获取设置文件 -

    GET-AzurePublishSettingsFile

    Get-AzurePublishSettingsFile cmdlet在[Windows Azure管理门户]上打开一个网页,您可以从中下载订阅信息。该信息包含在.publishsettings文件中。

  3. 通过运行cmdlet导入要由Windows Azure cmdlet使用的Azure设置文件 -

    Import-AzurePublishSettingsFile '<Folder>\YourSubscriptionName-DownlodDate-credentials.publishsettings'

    此处,'<Folder>\YourSubscriptionName-DownlodDate-credentials.publishsettings'是您在工作站上保存的文件。

  4. Import-AzurePublishSettingsFile cmdlet可以做两件事 -

    1. 它解析此AzurePublishSettingsFile XML文件,读取证书数据并在本地证书存储区中安装该证书(通常是当前用户/个人) - 证书具有“Windows Azure工具”和#a; as&#39;发给&#39;和&#39;发布者&#39;。

    2. 它创建了一个名为&#39; WindowsAzureProfile.xml&#39;在文件夹&#39; C:\ Users \ userName \ AppData \ Roaming \ Windows Azure PowerShell&#39; - 该文件包含订阅名称,SubscriptionId和Azure证书Thumbprint等。


    3. 现在你知道了。