最近在学习分布式,昨天在VMware上弄了3个虚拟机Centos7环境搭建集群的时候,出现了未到达主机路由的问题,在确认了配置文件都没问题的情况下还是如此,先把配置文件贴上来
dataDir对应目录下的myid文件也是对应了serverid的,这就很爆炸了。
百度后都说是防火墙问题,于是就各种关闭防火墙
systemctl stop firewalld 关闭防火墙
systemctl status firewalld 查看防火墙状态
......
具体操作请百度
最后结果是这样
三台机器都已经关了防火墙
然并卵,查看日志
再请教了一位大牛各种检查后依旧没有问题,此时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
重启机器即可
三台机器都进行如下操作,最后成功。