#powershell #azure #azure-hdinsight
#powershell #azure #azure-hdinsight
Вопрос:
Столкнулся со странной проблемой при подключении HDInsight к моим кластерам. Код, который я использую для подключения:
$clustername=<"clustername">
Use-AzureHDInsightCluster -Name $clusterName
Вчера я вводил этот код через Powershell, и он не возвращал никакого сообщения об ошибке или каких-либо выходных данных. Это будет просто выполняться непрерывно. Я подумал, что это проблема с моей системой, поэтому сегодня я создал виртуальную машину (под управлением Windows 8) и снова ввел код. Это сработало около десяти раз, затем начала повторяться та же проблема, которая произошла вчера. Но сегодня после работы в течение десяти минут я получил это сообщение об ошибке:
USe-AzureHDInsightCluster : Request failed after (41) attempts over a period of (00:10:57.3107100) with code: Unauthorized
Content:<Error xmlns="http://schemas.microsoft.com/windowsazure"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Code>AuthenticationFailed</Code> <Message>A security token
validation error occured for the received JWT token.</Message></Error>
At line:1 char:1
USe-AzureHDInsightCluster -Name $clusterName
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : NotSpecified: (:) [Use-AzureHDInsightCluster], HttpLayerException
FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.HDInsight.Framework.Core.Library.WebRequest.HttpLayerException,Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.UseAzureHDInsightClusterCmdlet
Я все еще подключен к своей учетной записи Azure, и обе приведенные ниже команды возвращают соответствующие учетные записи, которые я использую:
Get-AzureAccount
Get-AzureSubscription
Я перезапустил свою виртуальную машину (которая также предоставила мне новый IP-адрес), и я по-прежнему получал то же сообщение об ошибке. Все остальные команды работают хорошо (т. Е. ‘Get-AzureStorageBlob’), но любой связанный с HDInsight сбой (например, Get-AzureHdinsightcluster). Очевидно, что с HDInsight что-то не так, однако я в замешательстве, потому что команды работали раньше. Между тем, как я запускал
Use-AzureHDInsightCluster successfully
и в то время, когда произошел сбой, я несколько раз запускал следующий код:
Invoke-Hive -File "wasb://<container>@<storage account>/blob"
Которая также выдала мне эту ошибку:
Invoke-Hive : Request failed with code:InternalServerError
Content:{"error":"org.apache.hadoop.fs.azure.AzureException: Unable to access container <container> in account
<storage account> using anonymous credentials, and no credentials found for them in the configuration."}
At line:1 char:1
Invoke-Hive -File "wasb://<container>@<storage account>/<blob>"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : NotSpecified: (:) [Invoke-AzureHDInsightHiveJob], HttpLayerException
FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.HDInsight.Framework.Core.Library.WebRequest.HttpLayerException,Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.InvokeHiveCmdlet
В течение этого времени я пытался предоставить свои учетные данные несколькими различными способами как с помощью команды Invoke-Hive, так и с помощью команды Use-AzureHDInsightCluster. Меня меньше беспокоит эта ошибка, но я включил ее на случай, если она имеет отношение к проблеме HDInsight.
Буду признателен за любую помощь, поскольку я исчерпал все свои текущие идеи.
Ответ №1:
Настройка моего сертификата в Powershell исправила эту ошибку. Обратитесь к этому веб-сайту для получения шагов, необходимых для доступа к вашему сертификату: http://blogs.msdn.com/b/bigdatasupport/archive/2013/11/21/getting-started-with-hdinsight-powershell-tools-and-sdk.aspx
Из документации, которую я прочитал в Azure, казалось, что настройка сертификата не требуется, если подписка уже была настроена и к ней был получен доступ. Это было верно для всех служб, которые я использовал, кроме HDInsight. Однако для использования HDInsight с Powershell, я полагаю, требуется сертификат.