关闭防火墙后Zookeeper集群时还是出现java.net.NoRouteToHostException: 没有到主机的路由

最近在学习分布式,昨天在VMware上弄了3个虚拟机Centos7环境搭建集群的时候,出现了未到达主机路由的问题,在确认了配置文件都没问题的情况下还是如此,先把配置文件贴上来

关闭防火墙后Zookeeper集群时还是出现java.net.NoRouteToHostException: 没有到主机的路由_第1张图片


dataDir对应目录下的myid文件也是对应了serverid的,这就很爆炸了。

百度后都说是防火墙问题,于是就各种关闭防火墙

systemctl stop firewalld 关闭防火墙
systemctl status firewalld 查看防火墙状态

......

具体操作请百度

最后结果是这样

关闭防火墙后Zookeeper集群时还是出现java.net.NoRouteToHostException: 没有到主机的路由_第2张图片


三台机器都已经关了防火墙 


然并卵,查看日志

关闭防火墙后Zookeeper集群时还是出现java.net.NoRouteToHostException: 没有到主机的路由_第3张图片


再请教了一位大牛各种检查后依旧没有问题,此时3台虚拟机之间可以ping的通,

先切换到单机吧,配置文件将server这几列注释掉,回到单机环境,启动zookeeper

此时用到了telnet操作, telnet ip port

突然问题来了,从windows主机去telnet 192.168.10.152 2181

竟然是失败了? WTF,防火墙不是关了吗

然后这里引入了一个新的问题  SELinux

具体是什么请自行移步去看

https://baike.baidu.com/item/SELinux/8865268?fr=aladdin


知道了问题,解决方案自然也有了

查看SELinux状态:
1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status:                 enabled
2、getenforce                 ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0                  ##设置SELinux 成为permissive模式
                              ##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可


三台机器都进行如下操作,最后成功。


你可能感兴趣的:(关闭防火墙后Zookeeper集群时还是出现java.net.NoRouteToHostException: 没有到主机的路由)