前置环境

  • JDK环境搭建

    下载安装

    http://archive.apache.org/dist/zookeeper/zookeeper-3.6.3/
    tar xf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/bigdata
    cd /opt/bigdata/
    mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3
    ln -s zookeeper-3.6.3 zookeeper

    配置环境变量

    vim /etc/profile.d/zookeeper_env.sh
    1. #set zookeeper environment
    2. export ZOOKEEPER_HOME=/opt/bigdata/zookeeper
    3. export PATH=$PATH:$ZOOKEEPER_HOME/bin
    source profile

    修改配置文件

    cd /opt/bigdata/zookeeper-3.6.3/conf/
    cp zoo_sample.cfg zoo.cfg
    vim zoo.cfg ```yaml dataDir=/var/bigdata/zookeeper

集群环境才需要配置

server.1=master01:2888:3888 server.2=node01:2888:3888 server.3=node02:2888:3888

参数说明:

- tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
- initLimit = 10:LF初始通信时限<br />Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
- syncLimit = 5:LF同步通信时限<br />Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死 掉,从服务器列表中删除Follwer。
- dataDir:保存Zookeeper中的数据<br />注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
- clientPort = 2181:客户端连接端口,通常不做修改。
<a name="BLeBU"></a>
# 修改myid
mkdir -p /var/bigdata/zookeeper<br />cd /var/bigdata/zookeeper<br />在master01节点:echo 1 > myid<br />在node01节点:   echo 2 > myid<br />在node02节点:  echo 3 > myid
<a name="TJ2Pm"></a>
#  启动服务

-  依次启动节点服务:zkServer.sh start
- 状态查看:zkServer.sh status
- 进程查看:jps

![image.png](https://cdn.nlark.com/yuque/0/2022/png/2585695/1641520797466-7ea12e88-1091-4d1a-8545-3005b430d135.png#clientId=ue61b356f-fc7b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=104&id=ub3abdcf1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=208&originWidth=1202&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45931&status=done&style=none&taskId=ubf1c408d-5bab-4402-b4c9-49d36615336&title=&width=601)
<a name="WRKOG"></a>
# 集群一键启动
<a name="ZR2Ec"></a>
## vim nodes
```shell
master01
node01
node02

vim zk-cluster.sh

#!/bin/bash
case $1 in
"start"){
  cat /root/nodes | while read line  
  do
  {
        echo ---------zookeeper $line 启动---------------
        ssh $line "zkServer.sh start"
  }&
  wait
  done
}
;;
"stop"){
  cat /root/nodes | while read line  
  do
  {
        echo ---------zookeeper $line 停止---------------
        ssh $line "zkServer.sh stop"
  }&
  wait
  done
}
;;
"status"){
  cat /root/nodes | while read line  
  do
  {
        echo ---------zookeeper $line 状态---------------
        ssh $line "zkServer.sh status"
  }&
  wait
  done
}
;;
esac