CentOS 7 环境搭建zookeeper集群

Zookeeper是一个协调集群服务一致性的服务

Zookeeper版本 3.4.10

集群搭建在某个用户的目录下,并非root下,这里以fuqinqin用户为例

目录说明:
/home/fuqinqin/packages:  存放安装包的目录
/home/fuqinqin/zookeeper: zookeeper的安装目录

zookeeper集群一般配置基数个实例,原因是zookeeper的策略是:只有一半以上的节点存活时集群才处于运行状态。举例:正常情况下3台zookeeper服务构成集群,只要有2台及以上健康,则集群健康,如果集群节点数是4,则需要3台节点健康才能保证集群的健康。


集群搭建步骤:
1 . 下载tar包:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
到fuqinqin目录下的
packages目录下
wget 
http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
2.  将tar包解压到zookeeper文件夹下
tar -zxvf ./
zookeeper-3.4.10.tar.gz  -C ../zookeeper
CentOS 7 环境搭建zookeeper集群_第1张图片
3. zookeeper目录下创建 zkData 和 zkDataLog 两个目录,分别用于存放 快照文件 和 事务日志
cd ./zookeeper
mkdir zkData
mkdir zkDataLog
4. 修改配置文件
进入zookeeper的根目录下的conf目录,会发现有一个zoo_sample.cfg文件,这个文件是官方给的一个配置文件模板,需要复制一份,且更名为zoo.cfg,因为zookeeper的解析规则是解析zoo.cfg
cp ./zoo_sample.cfg ./zoo.cfg
vim ./zoo.cfg
官方给了一些默认的配置,我们初次使用只改动少许配置即可
改动1:dataDir。将这个参数修改成刚才新建的zkData的绝对路径
改动2:新增dataLogDir,配置成刚才新建的zkDataLog文件夹的绝对路径
改动3:
server.1=192.168.227.130:2888:3888
server.2=192.168.227.133:2888:3888
server.3=192.168.227.135:2888:3888
这里搭建的是三台zookeeper服务器的集群,这里需要申明
参数讲解:
    1 ,2,3 - 表示节点处在第几个节点,从1开始的正整数
    ip - 节点的自身ip地址
    2888 - 节点之间的通讯端口,可更改
    3888 - 对外提供服务的端口。可更改
至此,配置文件配置完毕!
5. 新建myid文件
在zkData文件夹下新建myid文件,内容就是节点自身的标志,如1,2,3

CentOS 7 环境搭建zookeeper集群_第2张图片

CentOS 7 环境搭建zookeeper集群_第3张图片


6. 依次对另外两台服务器做以上所有的相同操作.
7. 启动zookeeper
进入到bin目录下,执行 ./zkServer.sh start开启服务
./zkServer.sh stop 停止服务
./zkServer.sh restart 重启服务
./zkServer.sh status 查看当前节点的状态
再依次启动其余两台服务器
8. 分别在各个服务器上执行 ./zkServer.sh status查询启动状态,且还能看到当前节点是“follower”还是“leader”
9. jps也可以辅助我们查看进程是否正常启动
CentOS 7 环境搭建zookeeper集群_第4张图片
QuorumPeerMain进程就是zookeeper服务了。

至此,zookeeper的集群搭建已经讲完了。

注意:
在实践过程中发现,在centOS环境下,通过jps能看到zookeeper服务已经启动,但是执行 ./zkServer.sh status命令时却提示服务有可能没有启动起来,这是因为centos的防火墙阻止了节点间的通讯导致的。解决办法有两种:
1. 关闭防火墙
service iptables stop
如果报iptables找不到,则初始化iptables插件
yum install iptables
yum install iptables-services
然后重启服务就好了
./zkServer.sh restart
2. 防火墙放开2888,3888等关键端口的限制

你可能感兴趣的:(zookeeper)