Поделиться через


Поиск имен узлов кластера

Кластер HDInsight создается с общедоступной службой DNS clustername.azurehdinsight.net. При подключении к отдельным узлам или настройке подключения к узлам кластера в одной и той же пользовательской виртуальной сети необходимо использовать имя узла или полное доменное имя (FQDN) узлов кластера.

Из этой статьи вы узнаете, как получить имена узлов кластера. Их можно получить вручную с помощью веб-интерфейса Ambari или автоматически с помощью REST API Ambari.

Предупреждение

Чтобы получить имена узлов кластера, следуйте рекомендациям ниже. Номера в имени узла необязательно указываются последовательно, а при обновлении выпуска HDInsight может менять формат имени узла для согласования с виртуальными машинами. Не нужно строго следовать тому или иному соглашению об именовании.

Имена узлов можно получить с помощью пользовательского интерфейса Ambari или REST API Ambari.

Получение имен узлов из веб-интерфейса Ambari

Получить имена узлов посредством веб-интерфейса Ambari можно при подключении к узлу по протоколу SSH. Представление узлов в веб-интерфейсе Ambari доступно в кластере HDInsight по адресу https://CLUSTERNAME.azurehdinsight.net/#/main/hosts, где CLUSTERNAME — это имя вашего кластера.

Get-Host-Names-In-Ambari-UI.

Получение имен узлов из REST API Ambari

При создании скриптов автоматизации вы можете получить имена узлов с помощью REST API Ambari перед подключением к узлам. Номера в имени узла необязательно указываются последовательно, а при обновлении выпуска HDInsight может менять формат имени узла для согласования с виртуальными машинами. Не нужно строго следовать тому или иному соглашению об именовании.

Ниже вы найдете ряд примеров того, как можно получить полные доменные имена узлов в кластере. Подробнее о REST API Ambari см. в статье Управление кластерами HDInsight с помощью REST API Ambari от Apache.

В следующем примере jq или ConvertFrom-Json используются для анализа документа ответа JSON и отображения имен узлов.

export PASSWORD=''
export CLUSTER_NAME=''
curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/hosts" \
| jq -r '.items[].Hosts.host_name'
$clusterName=''
$creds = Get-Credential -UserName "admin" -Message "Enter the HDInsight login"
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/hosts" `
    -Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.items.Hosts.host_name