如何查找 HDInsight 群集上不同节点的 IP 地址

How to find the IP addresses of different nodes on a HDInsight cluster

我有一个 HDInsight 集群 运行 Storm。这个集群是在没有DNS的情况下(不是我自己)搭建的,所以只能通过URL中的IP地址访问。如何找到头节点的IP地址?我以前访问过,但是IP地址是别人给我的。将来我们将创建更多这样的集群,我想知道查找头节点 IP 地址的一般方法

最好使用 CLI 或门户

编辑:HDInsight 群集已在 VNET 中。

这是我的问题的更简洁版本。如何在不使用集群名称的情况下找到 IP 地址?

Azure HDInsight 集群 uses Secure Shell (SSH) to securely connect to Hadoop on Azure HDInsight Storm

详情请参考“Connect to HDInsight”。

注意: Azure HDInsight 集群不允许分配任何 public IP。

如果需要将 IP 分配给 HDInsight 群集,则必须在 VNET 中创建 HDInsight。

详情请参考“Extend Azure HDInsight using an Azure Virtual Network”。

答案是,如果您导航到虚拟网络资源概述,您可以找到 IP 地址。

ssh 进入集群的头节点并使用 运行 $curl ifconfig.me 命令获取头节点的 IP 地址。

您可以使用以下 bash 命令获取集群上所有节点的完全限定域名 (FQDN)(将 $CLUSTERNAME 替换为您的集群名称)。

curl -u admin -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/hosts" \
| jq '.items[].Hosts.host_name'

它可能会要求您安装 "jq"。上面的命令将 return 节点列表如下

"hn0-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"hn1-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"wn0-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"wn1-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"wn2-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"wn3-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"zk0-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"zk2-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"
"zk3-mydemo.lle2qymtat0ehndwwaba2j1gih.dx.internal.cloudapp.net"

您可以使用以下命令从您的头节点 SSH 会话中通过 SSH 连接到您的工作节点

ssh sshuser@wn0-mydemo

一旦您通过 SSH 进入工作节点 运行 $curl ifconfig.me 命令获取工作节点的 IP 地址

通常,两个头节点具有相同的 IP 地址,所有 4 个工作节点具有相同的 IP 地址。