无法解析主机名 datanode1:名称或服务未知

无法解析主机名 datanode1:名称或服务未知

我正在与我的 namenode 和 AWS 上的两个 datanode 建立 SSH 连接。当我尝试将配置和我的.pem文件从 namenode 复制到 datanode 时,出现以下错误:

 Could not resolve hostname datanode1: Name or service not known 

我的命令是:

scp ~/.ssh/hadoop-cluster-key.pem ~/.ssh/config datanode1:~/ssh

我的配置文件是

 Host namenode  
     HostName ec2-18-XXXXXXXXXXXXXXX-2.compute.amazonaws.com
     User ubuntu
     IdentifyFile ~/.ssh/hadoop-cluster-key.pem
    Host datanode1  
     HostName ec2-18-XXXXXXXXXXXXXXX-2.compute.amazonaws.com
     User ubuntu
     IdentifyFile ~/.ssh/hadoop-cluster-key.pem
    Host datanode2  
     HostName ec2-18-XXXXXXXXXXXXXXX-2.compute.amazonaws.com
     User ubuntu
     IdentifyFile ~/.ssh/hadoop-cluster-key.pem

请帮我修复这个问题。

答案1

SSH 不会读取您的 Hadoop 配置文件中的主机名。

将“namenode”、“datanode1”和“datanode2”放入每台服务器上的 /etc hosts 文件中。现在这些主机名将解析。

/etc/hosts 文件将如下所示(添加的内容)。将 IP 地址更改为您的 VPC私人的每个 EC2 实例的 IP 地址。

10.0.0.10 namenode
10.0.0.11 datanode1
10.0.0.12 datanode2

注意:对于生产系统,我将使用带有私有区域的 Route 53 进行 VPC 内部的 DNS 解析。

注意:仅将 .pem 文件复制到.ssh每台服务器上的目录不足以启用“无密码 SSH”。您还需要从密钥对(.pem 文件)中提取公钥并将其添加到.ssh/authorized_keys

以下命令将提取公钥。然后将公钥的内容“附加”到 .ssh/authorized_keys。

ssh-keygen -y -f ~/.ssh/hadoop-cluster-key.pem > ~/.ssh/hadoop-cluster-key.pub

cat ~/.ssh/hadoop-cluster-key.pub >> ~/.ssh/authorized_keys

您需要在集群的每个节点上重复第二个命令。

相关内容