查找群集节点的主机名

HDInsight 群集是使用公共 DNS clustername.azurehdinsight.cn 创建的。 当你通过 SSH 连接到单个节点或将连接设置到同一自定义设置的虚拟网络中的群集节点时,需要使用主机名,或群集节点的完全限定的域名 (FQDN)。

本文介绍如何获取群集节点的主机名。 你可以通过 Ambari Web UI 手动获取或通过 Ambari REST API 自动获取。

警告

请使用以下推荐的方法获取群集节点的主机名。 主机名中的数字不一定是按顺序的,HDInsight 可能会更改主机名格式,使其与版本刷新的 Vm 保持一致。 不要依赖于目前存在的任何特定命名约定。

你可以通过 Ambari UI 或 Ambari REST API 获取主机名。

从 Ambari Web UI 获取主机名

当你通过 SSH 连接到节点时,可以使用 Ambari Web UI 获取主机名。 你可以在 HDInsight 群集上获取 Ambari Web UI 主机视图,链接为 https://CLUSTERNAME.azurehdinsight.cn/#/main/hosts,其中CLUSTERNAME 是你的群集名称。

Get-Host-Names-In-Ambari-UI

从 Ambari REST API 获取主机名

在生成自动化脚本时,在与主机建立连接之前,你可以使用 Ambari REST API 获取主机名。 主机名中的数字不一定是按顺序的,HDInsight 可能会更改主机名格式,使其与版本刷新的 Vm 保持一致。 不要依赖于目前存在的任何特定命名约定。

以下是有关如何检索群集中节点 FQDN 的一些示例。 更多详细信息,请参阅使用 Apache Ambari REST API 管理 HDInsight 群集

以下示例使用 jqConvertFrom-Json 来分析 JSON 响应文档并仅显示主机名。

export PASSWORD=''
export CLUSTER_NAME=''
curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.cn/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.cn/api/v1/clusters/$clusterName/hosts" `
    -Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$respObj.items.Hosts.host_name