1、什么是Zookeeper
Zookeeper是一个分布式开放源码的协调服务,是Hadoop和Hbase的重要组件,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Zookeeper的典型应用场景有数据发布订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁、分布式列。
2、Zookeeper安装步骤
2.1、环境准备
ip |
安装软件 |
内存 |
磁盘空间 |
192.168.80.130 |
jdk1.8、zookeeper3.4.10、centos7 |
4G |
20G |
192.168.80.131 |
jdk1.8、zookeeper3.4.10、centos7 |
4G |
20G |
192.168.80.132 |
jdk1.8、zookeeper3.4.10、centos7 |
4G |
20G |
2.2、配置hosts文件
将配置好的hosts文件分发给其余集群机器。
2.3、创建对应的目录和文件
mkdir /opt/software/zookeeper/data
mkdir /opt/software/zookeeper/dataLog
在/opt/software/zookeeper/data文件夹下面创建myid文件,myid文件内容编辑为1,其余两个机器分别配置上2和3。
vim /opt/software/zookeeper/data/myid
2.3.1、修改配置文件
解压zookeeper.3.4.10.tar.gz,并重命名。
tar -xvf zookeeper.3.4.10.tar.gz
mv zookeeper.3.4.10.tar.gz zookeeper
进入/opt/software/zookeeper/conf,将文件夹下的zoo_sample.cfg更名为zoo.cfg,或者新建一个zoo.cfg,然后将zoo_sample.cfg内容复制到zoo.cfg。这里采用新建一个zoo.cfg文件,并将zoo_sample.cfg文件内容追加到zoo.cfg文件尾。
vim /opt/software/zookeeper/conf/zoo.cfg
按ESC后按:,输入wq后按Enter即可。
cat zoo_sample.cfg >> zoo.cfg
在Linux中>>表示追加,>表示覆盖。
对zoo.cfg文件内容配置如下所示。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/software/zookeeper/data
dataLogDir=/opt/software/zookeeper/dataLog
clientPort=2181
server.1=worker1:2888:3888
server.2=worker2:2888:3888
server.3=worker3:2888:3888
tickTime:表示Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
initLimit:集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
syncLimit:集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
dataDir:Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataLogDir:Zookeeper保存日志文件的目录。
clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
server.1:服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
将配置好的zookeeper文件分发到192.168.80.131机器和192.168.80.132机器上。
2.4、启动和测试Zookeeper集群
分别在集群各个节点启动命令
sh /opt/software/zookeeper/bin/zkServer.sh start
分别查看下集群各个节点的状态
sh /opt/software/zookeeper/bin/zkServer.sh status
2.5、问题记录
可能原因:
- 端口被占用
修改conf/zoo.cfg文件,添加admin.serverPort=没被占用的端口号。
- 防火墙未关闭
执行命令:
systemctl stop firewalld
- ip地址不是本机网卡
quorumListenOnAllIPs=true
出现这个问题,查看具体的错误日志,执行命令:
sh /opt/software/zookeeper/bin/zkServer.sh start-foreground
从这可以看出是端口2181被占用了。
查看端口占用情况这里提供一种方法,安装上net-tools包。
yum install -y net-tools
netstat -tunlp | grep 2181