安装zookeeper之前先安装java:

tar -xf jdk-8u231-linux-x64.tar.gz -C /usr/local/

cd /usr/local/
ln -sv jdk1.8.0_231/ jdk

cat > /etc/profile.d/java.sh <<EOF
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib
export PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin
EOF
. /etc/profile.d/java.sh

java -version
javac -version

zookeeper下载地址:

https://mirrors.aliyun.com/apache/zookeeper/

下载安装包:

wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

配置DNS解析:

cat > /etc/hosts <<EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.51 zookeeper1
192.168.0.52 zookeeper2
192.168.0.53 zookeeper3
EOF

设置主机名:

hostnamectl set-hostname zookeeper1
hostnamectl set-hostname zookeeper2
hostnamectl set-hostname zookeeper3

配置免秘钥:

ssh-copy-id -i .ssh/id_rsa.pub root@zookeeper1
ssh-copy-id -i .ssh/id_rsa.pub root@zookeeper2
ssh-copy-id -i .ssh/id_rsa.pub root@zookeeper3


解压安装:

tar -xf zookeeper-3.4.14.tar.gz -C /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.14/ zookeeper

配置环境变量:

cat > /etc/profile.d/zookeeper.sh <<EOF
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=\$PATH:\$ZOOKEEPER_HOME/bin
EOF
. /etc/profile.d/zookeeper.sh

日志目录:

mkdir /usr/local/zookeeper/logs

数据目录:

mkdir /data/zookeeper -pv

配置文件:

cat > /usr/local/zookeeper/conf/zoo.cfg <<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181

# server.1 这个1是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里
# 指名集群间通讯端口和选举端口
server.1=zookeeper1:2287:3387
server.2=zookeeper2:2287:3387
server.3=zookeeper3:2287:3387
EOF

数据目录的myid文件的ID号和配置文件中的server.id对应:

zookeeper1
echo "1" > /data/zookeeper/myid
zookeeper2
echo "2" > /data/zookeeper/myid
zookeeper3
echo "3" > /data/zookeeper/myid

复制配置文件到其他节点:

scp /usr/local/zookeeper/conf/zoo.cfg root@zookeeper2:/usr/local/zookeeper/conf/
scp /usr/local/zookeeper/conf/zoo.cfg root@zookeeper3:/usr/local/zookeeper/conf/

使用普通用户启动集群:这里要和hadoop配合使用,一般情况下root即可。

useradd hadoop
cd /usr/local/
chown -R hadoop.hadoop zookeeper/ zookeeper
chmod g+w /usr/local/zookeeper/logs/
chown -R hadoop.hadoop /data/zookeeper/


启动集群:

su hadoop
zkServer.sh start

查看状态:

~]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

停止集群:

zkServer.sh stop