本文介绍如何进行Zookeeper集群的安装配置,这里将Zookeeper安装到三个从节点上:slave1、slave2、 slave3,做法:在一个从节点 slave1 完成 Zookeeper 所有基本配置,然后通过复制方式将 Zookeeper 环境 分发到其他两个从节点(slave2、slave3)虚拟机,Zookeeper 集群中所有的 Zookeeper 配置和环境完全一 样。

运行环境:

VirtualBox:CentOS-6.8

Windows 64 位:Xme5.exe

Hadoop2.6.5

zookeeper-3.4.6

搭建的 Zookeeper 集群结构如下:

Zookeeper 集群安装步骤

1. 下载 zookeeper-3.4.6,并使用 xftp 工具将 zookeeper-3.4.6.tar.gz 文件上传到从节点 slave1 的 ~/tools_bak 目录

下载 zookeeper-3.4.6的地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/

2. 解压 zookeeper-3.4.6.tar.gz 文件

命令:tar -zxf zookeeper-3.4.6.tar.gz -C ~/tools

Zookeeper 的配置文件:

3. 修改 Zookeeper 安装目录下的 conf 目录里的如下配置文件 zoo.cfg(注:该文件原来不存在的,需要自 行创建或将相同目录下的 zoo_sample.cfg 复制为 zoo.cfg,用户名替换掉),在 zoo.cfg 修改为以下内容: 

dataDir=/home/用户名/tools/data/zookeeper

dataLogDir=/home/用户名/tools/logs/zookeeper

clientPort=2181

tickTime=2000

initLimit=5

syncLimit=2

server.1=slave1:2888:3888

server.2=slave2:2888:3888

server.3=slave3:2888:3888

修改结果如下图所示:

各参数含义如下:

dataDir:Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

dataLogDir: Zookeeper 保存数据的日志的目录。

clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是 每个 tickTime 时间就会发送一个心跳。

initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长 能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务 器还没有收到客户端的返回信息,那么表明这个客户端连接失败,总的时间长度就是 10*2000=20 秒。

syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒。

server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器(服务器编号);B 是这个服务器 的 IP 地址或映射名字;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万 一集群中的 Leader 服务器宕机了,需要一个端口来重新进行选举一个新的 Leader,而这个端口就是用来 执行选举时服务器相互通信的端口。

4. 从从节点 slave1 向集群中从节点 slave2 和 slave3 复制 Zookeeper:

命令:scp -r /home/用户名/tools/zookeeper-3.4.6 slave2:/home/用户名/tools

           scp -r /home/用户名/tools/zookeeper-3.4.6 slave3:/home/用户名/tools

5. 在从节点 slave1、slave2 和 slave3 完成以下相同操作:

操作一:在三个节点上新建以下文件夹,分别对应 zoo.cfg 中的参数 dataDir 和 dataLogDir:

命令:mkdir -p /home/用户名/tools/data/zookeeper

           mkdir -p /home/用户名/tools/logs/zookeeper

操作二:在三个节点的/home/用户名/tools/data/zookeeper/目录下分别创建 myid 文件,内容为 Zookeeper 服务器编号:

命令:vi /home/用户名/tools/data/zookeeper/myid

在 slave1 的/home/用户名/tools/data/zookeeper/目录下新建文件 myid,添加内容为 1

在 slave2 的/home/用户名/tools/data/zookeeper/目录下新建文件 myid,添加内容为 2

在 slave3 的/home/用户名/tools/data/zookeeper/目录下新建文件 myid,添加内容为 3

:wq  保存文件myid 退出

操作三:为方便今后操作,在三个节点将 Zookeeper 的 bin 目录加入系统路径,如下在~/.bashrc 文件末尾加上如下的两行代码:

export ZK_HOME=/home/用户名/tools/zookeeper-3.4.6

export PATH=$PATH:$ZK_HOME/bin

然后运行命令:source ~/.bashrc 让环境变量生效。

6. 在从节点 slave1、slave2 和 slave3 分别启动 Zookeeper

进入目录 cd ~/tools/zookeeper-3.4.6/bin/

执行启动: ./zkServer.sh start

7. 查看 Zookeeper 进程和状态

节点jps 命令查看进程命令:./zkServer.sh status 查看状态
slave 节点QuorumPeerMain

Mode: follower  (若干个)

Mode: leader  (1个)

8. 在从节点 slave1、slave2 和 slave3 分别关闭 Zookeeper

cd ~/tools/zookeeper-3.4.6/bin/

执行命令:./zkServer.sh stop

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐