一、问题描述
在配置完成Hadoop集群后,在启动Hadoop时出现报错:Master: ssh: connect to host master port 22: No route to host
错误截图如下(其中YKBMaster是本人的主机名):
二、解决办法
这大多数是因为Master节点中的“/etc/hosts”文件中IP和主机名映射关系不对应而导致的无法相互ping通各个节点从而无法建立到主节点(Master)的SSH连接。
首先查看自己Hadoop集群(本人所搭建的集群有一个主节点、两个从节点)上使用ifconfig命令查看主节点和从节点的IP地址
ifconfig
主节点IP地址为192.168.52.136:
从节点1的IP地址为192.168.52.135:
从节点2的IP地址为192.168.52.134:
知道各个节点的IP地址后修改各个节点中的“/etc/hosts”文件:
sudo vim /etc/hosts
修改主节点的/etc/hosts文件中的内容:
可以看到配置文件中的主节点的IP和主机名映射关系不对应:
修改文件,使主节点的IP和主机名映射关系对应:
同理,修改从节点的/etc/hosts文件中的内容,使主节点的IP和主机名映射关系对应(此处只演示修改一个从节点):
修改之前:
修改之后:
全部修改完毕后重新启动全部从节点的Linux系统,重启过后回到主节点再次启动可以看到启动成功:
至此,问题解决!!!
三、问题分析
出现 "Master: ssh: connect to host master port 22: No route to host" 错误通常意味着无法建立到主节点(Master)的SSH连接。这可能是由于以下原因导致的:
1. 网络连接问题:请确保网络连接正常,并且可以通过SSH协议访问到主节点。可以尝试使用ping命令检查主节点是否可达,例如:`ping Master`。
2. SSH配置错误:请确保所有集群节点上的SSH服务已经正确配置并运行。可以尝试手动使用SSH连接到主节点,以验证SSH服务是否正常工作。
3. 防火墙设置:如果主节点或其他节点上启用了防火墙,可能需要配置防火墙规则来允许SSH连接。请确保防火墙未阻止对SSH端口(默认为22)的访问。
4. 主机名解析问题:如果在配置Hadoop集群时使用了主机名而不是IP地址,请确保所有节点上都可以解析主机名。可以尝试在每个节点上使用`nslookup`或`ping`命令验证主机名是否能够正确解析为IP地址。
这里就是第一种原因,网络配置问题导致的无法建立连接~~~