共用方式為


尋找叢集節點的主機名

HDInsight 叢集是使用公用 DNS clustername.azurehdinsight.net建立的。 當您透過 SSH 連線到個別節點,或設定與相同自定義虛擬網路內的叢集節點連線時,您必須使用叢集節點的主機名或完整功能變數名稱 (FQDN)。

在本文中,您將瞭解如何取得叢集節點的主機名。 您可以透過Ambari Web UI手動取得它,或透過Ambari REST API自動取得。

警告

請使用下列建議方法來擷取叢集節點的主機名。 主機名中的數字不保證會依序排列,而 HDInsight 可能會變更主機名格式,以配合 VM 與發行重新整理。 請勿依賴目前存在的任何特定命名慣例。

您可以透過Ambari UI或Ambari REST API取得主機名。

從Ambari Web UI取得主機名

當您透過 SSH 連線到節點時,您可以使用 Ambari Web UI 來取得主機名。 Ambari Web UI 主機檢視可在 HDInsight 叢集 https://CLUSTERNAME.azurehdinsight.net/#/main/hosts上使用,其中 CLUSTERNAME 是叢集的名稱。

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

從Ambari REST API取得主機名

建置自動化腳本時,您可以使用Ambari REST API來取得主機名,再連線到主機。 主機名中的數字不保證會依序排列,而 HDInsight 可能會變更主機名格式,以配合 VM 與發行重新整理。 請勿依賴目前存在的任何特定命名慣例。

以下是如何擷取叢集中節點 FQDN 的一些範例。 如需Ambari REST API的詳細資訊,請參閱 使用Apache Ambari REST API管理 HDInsight 叢集

下列範例會使用 jqConvertFrom-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