Skip to content

keep yourself

部署zookeeper集群

部署zookeeper集群,以被kafka集群使用。

软件版本

JDK 1.8 zookeeper 3.4.14

安装openJDK

yum -y install java-1.8.0-openjdk-devel.x86_64
java -version

安装zookeeper 3.4.14

基础准备

修改主机名
hostnamectl set-hostname zk02
hostnamectl set-hostname zk03
#添加hosts
vi /etc/hosts
    10.1.241.201 redis-node3
    10.1.241.202 zk02
    10.1.241.203 zk03

zookeeper 3.4.14下载地址

  • zookeeper下载

      cd /data
      wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
    
  • 创建ZooKeeper相关目录

      #创建应用目录
      mkdir /usr/zookeeper
    
      #创建数据目录
      mkdir -p /data/zookeeper/data
      mkdir -p /data/zookeeper/logs
    
  • 解压到指定目录

      tar -zvxf zookeeper-3.4.14.tar.gz -C /usr/zookeeper
    
  • 配置环境变量

      #修改环境变量文件
      vi /etc/profile
      
      #增加以下内容
      export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.14
      export PATH=$ZOOKEEPER_HOME/bin:$PATH
      
      #使环境变量生效
      source /etc/profile
      
      #查看配置结果
      echo $ZOOKEEPER_HOME
    
配置ZooKeeper
  • ZooKeeper基础配置

      #进入ZooKeeper配置目录
      cd $ZOOKEEPER_HOME/conf
      
      #新建配置文件
      vi zoo.cfg
      
      #写入以下内容并保存
      
      tickTime=2000
      initLimit=10
      syncLimit=5
      dataDir=/data/zookeeper/data
      dataLogDir=/data/zookeeper/logs
      clientPort=2181
      server.1=10.1.241.201:2888:3888
      server.2=10.1.241.202:2888:3888
      server.3=10.1.241.203:2888:3888
    
  • 配置节点标识 每台机器的myid里面的值对应server.后面的数字x。

redis-node3:

echo "1" > /data/zookeeper/data/myid

zk02:

echo "2" > /data/zookeeper/data/myid

zk03:

echo "3" > /data/zookeeper/data/myid
  • 防火墙配置

      sudo /sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT
      sudo /sbin/iptables -I INPUT -p tcp --dport 3888 -j ACCEPT
      sudo /sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
    
      #保存配置
      sudo service iptables save
      sudo service iptables restart
    
      #查看防火墙状态
      sudo /sbin/iptables -L -n
    
启动zookeeper
#进入ZooKeeper bin目录
cd $ZOOKEEPER_HOME/bin

#启动
sh zkServer.sh start

#查看节点状态
sh $ZOOKEEPER_HOME/bin/zkServer.sh status
#状态信息
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader

#如果为从几=节点则为follower
客户端连接测试
  • 随机选其中一个节点作为客户端连接其他节点即可

      #指定Server进行连接
      sh $ZOOKEEPER_HOME/bin/zkCli.sh -server 10.1.241.202:2181
    
      #正常连接后显示
      [zk: 10.1.241.201:2181(CONNECTED) 0]
    
      #查看ZooKeeper根
      [zk: 10.1.241.201:2181(CONNECTED) 0] ls /
      [zookeeper]
    

ZooKeeper常用配置项说明

配置项名称ken.io 的说明
tickTimeCS通信心跳间隔服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每间隔 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
initLimitLF初始通信时限集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数
syncLimitLF同步通信时限集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数
dataDir数据文件目录Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里
dataLogDir日志文件目录Zookeeper保存日志文件的目录
clientPort客户端连接端口客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
server.N服务器名称与地址从N开始依次为:服务编号、服务地址、LF通信端口、选举端口;例如:server.1=192.168.88.11:2888:3888