Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop ssh:无法解析主机名。名称或服务未知_Hadoop_Ssh_Amazon Web Services_Amazon Ec2_Hosts - Fatal编程技术网

Hadoop ssh:无法解析主机名。名称或服务未知

Hadoop ssh:无法解析主机名。名称或服务未知,hadoop,ssh,amazon-web-services,amazon-ec2,hosts,Hadoop,Ssh,Amazon Web Services,Amazon Ec2,Hosts,我正在尝试在我的amazon实例上,在一个2节点集群上设置hadoop。每个实例都有一个公共dns,我使用它来引用它们。因此,在两台机器上的/etc/hosts文件中,我附加了如下行: {public dns of 1st instance} node1 {public dns of 2st instance} node2 我还可以通过执行以下操作从另一个实例ssh到每个实例: ssh {public dns of the other instance} 在第一个实例文件的hadoop/co

我正在尝试在我的amazon实例上,在一个2节点集群上设置hadoop。每个实例都有一个公共dns,我使用它来引用它们。因此,在两台机器上的/etc/hosts文件中,我附加了如下行:

{public dns of 1st instance} node1
{public dns of 2st instance} node2
我还可以通过执行以下操作从另一个实例ssh到每个实例:

ssh {public dns of the other instance}
在第一个实例文件的hadoop/conf/slaves中,我有:

localhost
node2
当我启动脚本bin/start-dfs.sh时 它能够在主节点上启动namenode、datanode和辅助namenode,但它表示:

node2: ssh: Could not resolve hostname node2: Name or service not known
如果我尝试,它打印出来的内容相同:

ssh node2
我想问题是如何告诉它将node2与第二个实例的公共dns关联。仅仅附加

{public dns of 2st instance} node2
到/etc/hosts文件的行?
我必须重新启动实例吗?

/etc/hosts
当您没有与IP地址关联的真实DNS时,其行为类似于本地DNS

如果您可以在从属文件和主文件中直接使用{public dns of 1st instance}节点1映射,您真的需要
{public dns of 1st instance}吗

此外,最好使用amazon实例的私有IP地址,而不是使用公共IP地址。您可以在每个实例的终端中执行
ifconfig
,并确定它们的私有IP地址(如果有)。它们基本上是从10.x.x.x/172.x.x.x/192.x.x.x开始的?然后,您可能可以在每个amazon实例的/etc/hosts中映射这些内容

因此,每台机器中的/etc/hosts应该类似于-

机器1:

{IP_address_1st_instance} node1
{IP_address_2st_instance} node2
机器2:

{IP_address_1st_instance} node1
{IP_address_2st_instance} node2

而且,这是为了让亚马逊实例(机器)能够相互解析,如果您打算映射它们的话。

直接在主文件和从文件中使用公共dns不会有问题。至于使用私有ip,在看到您的答案之前,我刚刚用/etc/hosts文件中相应的私有ip替换了公共dns,但它给了我相同的错误。但是我确实使用了ip-10.x.x,而不是10.x.x.x,这可能是问题所在吗?如果我使用ssh ip-10.x.x.x,我可以使用私有ip进行ssh,但不是ssh 10.x.x.x.x“但我确实使用了ip-10.x.x.x,而不是10.x.x.x”-我没有理解你的意思?aws控制台告诉你私有ip,但在地址前面有“ip-”