大数据基础-zookeeper的安装教程

1、准备

本篇文章演示的是搭建zookeeper集群,这里使用三台虚拟机进行演示说明。由于zookeeper的选举机制,因而zookeeper集群所需的虚拟机数量为奇数。

材料 版本 数量 备注
安装包 zookeeper-3.4.12.tar.gz 3
虚拟机 CentOS7.5 3
IP / 3 192.168.28.51/52/53
netcat 版本任意 3 一种网络工具,测试用
jdk 版本7以上 3 提前安装好

2、安装

安装目录是任意选择的,这里我们将zookeeper安装在/usr/local/zookeeper 目录下。
(1)上传文件
建立/usr/local/zookeeper 目录,将安装包zookeeper-3.4.12.tar.gz,上传到该目录下。

mkdir -p /usr/local/zookeeper

(2)解压文件
进入/usr/local/zookeeper目录中,找到zookeeper-3.4.12.tar.gz,并解压。

tar -zxvf zookeeper-3.4.12.tar.gz

至此安装步骤就简单的完成了。

3、配置

在配置环节需要配置三个文件,分别是zoo.cfg、myid和全局环境变量

文件名 路径
zoo.cfg /usr/local/zookeeper/conf/zoo.cfg
myid /usr/local/zookeeper/data/myid
profile /etc/profile

3.1 配置zoo.cfg

(1)创建zoo.cfg文件
进入/usr/local/zookeeper/conf 目录下,将zoo_sample.cfg重命名为zoo.cfg。

mv /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

(2)修改参数
需要配置的为以下几处:

tickTime=2000
initLimit=10
syncLimit=5
#dataDir指定的文件路径一定要确保存在,没有就自己创建。
dataDir=/usr/local/zookeeper/data
clientPort=2181

server.1=192.168.28.51:2888:3888
server.2=192.168.28.52:2888:3888
server.3=192.168.28.53:2888:3888

a). tickTime:该参数单位是毫秒ms,用于配置ZooKeeper中最小时间单元的长度,很多运行时的时间间隔都是使用tickTime的倍数来表示的。

b). initLimit:该参数要配置一个正整数N,表示tickTime的N倍。用于配置Leader服务器等待Follower启动,并完成数据同步的时间。Follower服务器在启动过程中,会与Leader建立连接并完成对数据的同步,从而确定自己对外提供服务的起始状态。Leader服务器允许Follower在initLimit时间内完成这个工作。

c). syncLimit:该参数要配置一个正整数N,表示tickTime的N倍。用于配置Leader服务器和Follower之间进行心跳检测的最大延时时间。如果Leader服务器在syncLimit时间内无法获取到Follower的心跳检测响应,那么Leader就会认为该Follower已经脱离了和自己的同步。

d). dataDir:用于配置ZooKeeper服务器存储快照文件的目录。
dataLogDir:用于配置ZooKeeper服务器存储事务日志文件的目录。dataDir和dataLogDir都要确保有读写权限。
默认情况下,如果没有配置参数dataLogDir,那么事务日志也会存储在这个目录中。考虑到事务日志的写性能直接影响ZooKeeper整体的服务能力,因此建议同时通过参数dataLogDir来配置ZooKeeper的事务日志的存储目录。

f). clientPort:用于配置当前服务器对外的服务端口,客户端会通过该端口和ZooKeeper服务器创建连接。

g). server.id=host:port:port:该参数用于配置组成ZooKeeper集群的机器列表,其中id即为ServerID,与每台服务器myid文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定Follower服务器与Leader进行运行时通信和数据同步时所使用的端口,第二个端口则专门用于进行Leader选举过程中的投票通信。在ZooKeeper服务器启动的时候,其会根据myid文件中配置的ServerID来确定自己是哪台服务器,并使用对应配置的端口来时行启动。如果在实际使用过程中,需要在同一台服务器上部署多个ZooKeeper实例来构成伪集群的话,那么这些端口都需要配置成不同。
(此处引用了网络文章的注释,侵删)

大数据基础-zookeeper的安装教程_第1张图片

3.2 配置myid

(1)在三台虚拟机上分别创建myid文件

touch /usr/local/data/myid

(2)依据 zoo.cfg配置的定义,分别在文件的第一行写入1、2、3。具体的对应规则如下:

服务器IP zoo.cfg配置 myid值
192.168.28.51 server.1=192.168.28.51:2888:3888 1
192.168.28.52 server.1=192.168.28.52:2888:3888 2
192.168.28.53 server.1=192.168.28.53:2888:3888 3

3.3 配置环境变量

修改全局环境变量配置文件profile

vim /etc/profile

增加如下内容:

#zookeeper
export ZK_HOME=/usr/local/zookeeper
export PATH=$ZK_HOME/bin:$PATH

保存后,更新使环境变量生效

source /etc/profile

实际的环境变量配置入下图所示(别忘了JDK的环境变量配置):
大数据基础-zookeeper的安装教程_第2张图片

4、启动与关闭

zookeeper的默认提示:

./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

(1)启动

cd /usr/local/zookeeper/bin
./zkServer.sh start

(2)关闭

cd /usr/local/zookeeper/bin
./zkServer.sh stop

(3)查看状态

cd /usr/local/zookeeper/bin
./zkServer.sh status

通过查看状态,可以明确是leader还是follower
在这里插入图片描述

5、检测

如果通过查看zk的状态来判断是否正常不放心的话,可以使用netcat这一工具来进一步验证。
在192.168.28.51这台虚拟机上输入命令:

nc -v 192.168.28.52 2181
stat

反馈结果如下(正常状态):
大数据基础-zookeeper的安装教程_第3张图片
可以通过这一测试验证zk集群是否正常。

6、补充说明

关于zookeeper的安装模式大致有三种:

模式 说明
集群模式 在多台服务器上分别安装zk,本文的操作就是典型的集群模式
伪集群模式 在一台服务器上安装多个zk,将其zoo,cfg文件中的端口改为不同
单机模式 在一台服务器上安装一个zk,zoo,cfg中只需要配置一条本机的ip和端口即可

你可能感兴趣的:(大数据,zookeeper)