标签:centos 它的 格式 选择 方便 not 奇数 火墙 init
1、机器列表及相关设计
服务器编号 | 服务器IP地址 | LF通信端口 | LF选举端口 | 客户端端口 |
1 | 192.168.229.131 | 2010 | 6008 | 2180 |
2 | 192.168.229.134 | 2010 | 6008 | 2180 |
3 | 192.168.229.133 | 2010 | 6008 | 2180 |
由于是在三台不同的服务器上搭建的集群,为了操作方便,所以每台机器上创建的文件夹都是相同路径,相同名称的
2、将zookeeper-3.4.14.tar.gz分别上传到三台服务器上,每台服务器上分别使用命令解压得zookeeper-3.4.14文件夹
// 解压zookeeper的压缩包
tar -zxvf zookeeper-3.4.14.tar.gz
3、分别在三台服务器的zookeeper-3.4.14文件夹下,新建文件夹 mylog、mydata,用于存放zookeeper的日志和数据
4、进入zookeeper-3.4.14下的conf文件夹下,复制zoo_sample.cfg并且命名为zoo.cfg
5、编辑zoo.cfg(由于我们这里不是伪集群,是在三台不同的服务器上进行的集群,所以三台机器的配置文件是一样的)
# tickTime:客户端与服务器、服务器与服务器之间维持心跳的时间间隔,也就是每一个tickTime会发送一次心跳,单位为毫秒
tickTime=2000
# initLimit:集群中Leader和Follow初始化连接时最多能容忍的心跳数
# 也就是初始化过程中,如果Leader和Follow在 (10*tickTime)ms的时间内还没有连接上,则认为连接失败
initLimit=10
# 自定义的zookeeper数据存放目录
dataDir=/usr/local/zookeeper/zookeeper-3.4.14/mydata
# 自定义的zookeeper的日志存放目录
dataLogDir=/usr/local/zookeeper/zookeeper-3.4.14/mylog
# 客户端连接的端口
clientPort=2180
# Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务
# Zookeeper集群配置项的格式比较特殊,具体规则如下: server:N=YYYY:A:B
# N:表示服务器编号,例如 0、1、2......
# YYYY:表示服务器的IP地址.
# A:为LF的通信端口,表示该服务器与集群中的Leader交换信息的端口
# B:为选举端口,表示选举新Leader时,服务器之间相互通信的端口(当Leader挂掉时,其它的服务器会相互通信,选择出新的Leader)
# 一般来说,集群中的A和B都是一样的,只有伪集群的时候A和B才不一样
server.1=192.168.229.131:2010:6008
server.2=192.168.229.134:2010:6008
server.3=192.168.229.133:2010:6008
6、在zookeeper-3.4.14的mydata文件下下面新建myid文件,并编辑myid文件,并且在里面写入对应的server的数字
// 进入mydata目录下
cd /usr/local/zookeeper/zookeeper-3.4.14/mydata
// 新建文件myid
touch myid
7、分别查看三台机器的防火墙是否关闭,如果未关闭,请先关闭防火墙
// 查看防火墙状态
[root@CentOS002 bin]# sudo service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
// 关闭防火墙
[root@CentOS002 bin]# sudo service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
// 再次查看防火墙状态,发现防火墙已经关闭了
[root@CentOS002 bin]# sudo service iptables status
iptables:未运行防火墙。
8、同时启动三台服务器上的zookeeper服务,并且三台服务器的角色信息如下
启动服务的时候需要注意,一定要等全部启动完成之后再去查看状态,可能稍微有一点点延迟,如果启动一台或者两台使用 ./zkServer.sh status去查看状态的话,会有 Error conftacting service,It is probably not running的报错信息,如果不能正常启动,去zookeeper.out文件中查看不能启动的原因.
9、连接客户端,由于集群之后连接客户端的命令不再是 ./zkCli.sh了
// 连接zookeeper客户端,端口我在zoo.cfg中修改成了2180
./zkCli.sh -server 192.168.229.131:2180
10、测试
在131这台机器上创建一个节点 /xiaomaomao
在134这台机器上查看,看节点以及数据是否已经同步了,如果节点和数据能够正常同步,那么zookeeper集群搭建就完成了
标签:centos 它的 格式 选择 方便 not 奇数 火墙 init
原文地址:https://www.cnblogs.com/xiaomaomao/p/13800523.html