![](/img/trans.png)
[英]How to install script in existing HDI cluster on Azure using ARM template
[英]How to list IP of Azure VM or HDI cluster after deployment using ARM template in the output
我創建了 ARM 模板來部署 Azure VM 和 HDI 集群。 我想在部署完成后獲取並列出 Azure VM 的公共 IP 和 HDI 集群頭節點的私有 IP。
有沒有辦法使用ARM模板來獲取它?
有沒有辦法使用ARM模板來獲取它?
根據我的知識,您無法使用模板獲取 VM IP。您可以使用azure cli
來獲取 VM IP 而不是模板。 如果您在 Linux 上使用 cli,則可以在創建 VM 后使用以下命令。
azure vm show -g shui123 -n shui|grep "Public IP address"| awk -F: '{print $3}'
我想在部署完成后獲取並列出 Azure VM 的公共 IP 和 HDI 集群頭節點的私有 IP。
Azure VM 的公共 IP 是什么意思? HDI 集群中只是虛擬機還是虛擬機?
如果只是一個VM,可以使用上面的命令,如果它是HDI集群中的VM,Azure HDInsight集群將不允許為其分配任何公共IP。 如果需要將 IP 分配給 HDInsight 群集,則必須在 VNET 中創建 HDInsight。 下面的文章確實談到了這一點。
您可以使用 Ambari REST API 獲得 HDI 集群 IP。
for HOSTNAME in $(curl -u admin:$PASSWORD -sS -G "https://shuitest.azurehdinsight.net/api/v1/clusters/shuitest/hosts" | jq -r '.items[].Hosts.host_name')
do
IP=$(curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/hosts/$HOSTNAME" | jq -r '.Hosts.ip')
echo "$HOSTNAME <--> $IP"
done
有關 Ambari RE ST AP 的更多信息,請參閱此鏈接。
更新:
如果只想列出活動節點IP,可以使用以下命令。
PASSWORD=
CLUSTERNAME=
curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/HDFS/components/NAMENODE" |grep LiveNode>test.txt
cat test.txt |awk -F'\' '{print $2}'|sed 's/\"//g'|tail -1|awk -F: '{print $1}'
上述解決方案對於提出的問題很好。 但是,理想情況下,您不應使用 HDI 集群頭節點的私有 IP。 這是因為如果頭節點(運行它的虛擬機)出現故障,私有 IP 會發生變化。 頭節點有一個 FQDN(完全限定域名)的概念,比如: hn0-van.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
和hn1-van.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
. 在任何地方使用這些 FQDN 代替 IP 地址。 它們的 DNS 解析由 Azure vnet 默認 DNS 解析器自動處理。 所以不用擔心。
獲取 FQDN: az network nic list --resource-group <RESOURCEGROUP>
將 替換為您的資源組名稱。 檢查頭節點的 FQDN 設置。
一旦我有時間,我也會發布 PowerShell 腳本以直接獲取頭節點的確切 FQDN。
參考: https : //docs.microsoft.com/en-us/azure/hdinsight/hdinsight-plan-virtual-network-deployment#multinet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.