一、Zookeeper安装部署

1、下载安装

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

官方文档:https://zookeeper.apache.org/doc/r3.5.7/index.html

  1. 解压安装:tar -zxf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

  2. 配置并生效环境变量

    1. vim /etc/profile.d/my_env.sh

    2. #ZOOKEEPER_HOME
      export ZOOKEEPER_HOME=/opt/module/zookeeper
      export PATH=$PATH:$ZOOKEEPER_HOME/bin
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14

      3. `source /etc/profile.d/my_env.sh`

      ## 2、环境配置

      #### 1、本地模式

      1. 创建dataDir路径目录:`mkdir zkData`
      2. 重命名配置文件zoo_sample.cfg:`mv conf/zoo_sample.cfg conf/zoo.cfg`
      3. 编辑配置文件zoo.cfg,修改dataDir路径:`vim conf/zoo.cfg`

      ```Bash
      # 修改dataDir路径
      dataDir=/opt/module/zookeeper/zkData

2、集群模式

在本地模式配置的基础上,修改以下配置,分发并重启集群

  1. 在dataDir对应文件夹下创建myid文件
  2. 编辑myid文件,添加服务器编号
1
2 # 服务器编号
  1. 修改配置文件zoo.cfg,增加服务器配置
1
2
3
4
5
6
7
8
# 格式 server.A=B:C:D
# A:服务器编号
# B:服务器地址
# C:交换信息的端口号
# D:执行选取的端口号
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

二、Zookeeper集群操作

常用命令
启动服务端:zkServer.sh start
停止服务端:zkServer.sh stop
查看状态:zkServer.sh status
  • 启动脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

case $1 in
"start")
for i in hadoop102 hadoop103 hadoop104
do
echo "---------- zookeeper $i 启动 ------------"
ssh $i "zkServer.sh start"
done
;;
"stop")
for i in hadoop102 hadoop103 hadoop104
do
echo "---------- zookeeper $i 停止 ------------"
ssh $i "zkServer.sh stop"
done
;;
"status")
for i in hadoop102 hadoop103 hadoop104
do
echo "---------- zookeeper $i 状态 ------------"
ssh $i "zkServer.sh status"
done
;;
*)
echo "输入参数有误"
exit
;;
esac

三、Zookeeper客户端操作

启动客户端:zkCli.sh

常用命令 常用选项
显示所有操作:help
创建节点:create 含有序列:-s临时节点:-e
获取当前节点值:get path 监听节点变化:-w附加次级信息:-s
查看当前ZNode子节点:ls path 监听子节点变化:-w附加次级信息:-s
设置节点具体值:set
查看节点状态:stat
删除节点:delete
退出:quit
递归删除节点:deleteall

四、Zookeeper API

五、Zookeeper常见配置

1、配置文件zoo.cfg

1
2
3
4
5
tickTime = 2000 # 通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
initLimit = 10 # LF初始通信时限,Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
syncLimit = 5 # LF同步通信时限,Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer
dataDir # 保存Zookeeper中的数据(注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录)
clientPort = 2181 # 客户端连接端口,通常不做修改