zookeeper

发布时间 2023-11-20 21:49:24作者: 不爱学的李泽信

zookeeper

zookeeper集群安装

1. 配置hosts

# 3节点一致
vim /etc/hosts
192.168.233.128 node1
192.168.233.129 node2
192.168.233.130 node3

2. 配置java环境

1. yum安装
yum -y install java-1.8.0-openjdk*

2. 二进制安装
tar -zxf jdk-8u201-linux-x64.tar.gz -C

3.配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export JAVA_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 使生效
source /etc/profile

# 验证

java -version

2. 下载安装包,并解压

官网下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

# 注:下载带bin的安装包,已经编译过的。没有带bin的为源码包,需要编译打包才能使用。
# 下载,3节点一致
wget http://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.8.3-bin.tar.gz

# 解压
tar xf apache-zookeeper-3.8.3-bin.tar.gz -C /data
mv /data/apache-zookeeper-3.8.3 /data/zookeeper

3. 编辑配置文件

cd /data/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
# 修改数据存放位置
dataDir=/data/zookeeper/zkdata

# 末尾追加集群节点
server.1=192.168.233.128:2888:3888
server.2=192.168.233.129:2888:3888
server.3=192.168.233.130:2888:3888
# 2888指follower连leader端口
# 3888指定选举的端口

4. 添加myid文件

# myid文件内容1对应zoo.cfg中配置的server.1范围:1~255之间的整数,在集群中必须唯一
##进入dataDir指定的目录下编辑myid,server1对应写上1,server2为2,server3为3
[root@node1 zookeeper]# vim myid
[root@node1 zookeeper]# cat myid 
1

5. 启动zookeeper服务

[root@node1 bin]# ./zkServer.sh start	# 一台一台启动

6. 查看节点状态

[root@node1 zookeeper]# bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

[root@node2 zookeeper]#  bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

[root@node3 zookeeper]#  bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

7. 编辑集群启动脚本

# 在任意节点配置
1.做免密
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.233.128
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.233.129
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.233.130

2.vim zk_run_all.sh
#!/bin/bash
case $1 in
"start"){
 for node in node1 node2 node3
  do
    echo "---------$node---------"
    ssh $node "source /etc/profile;/data/zookeeper/bin/zkServer.sh start"
  done
};;
"stop"){
 for node in node1 node2 node3
  do
    echo "---------$node---------"
    ssh $node "source /etc/profile;/data/zookeeper/bin/zkServer.sh stop"
  done
};;
"status"){
 for node in node1 node2 node3
  do
    echo "---------$node---------"
    ssh $node "source /etc/profile;/data/zookeeper/bin/zkServer.sh status"
  done
};;
"restart"){
 for node in node1 node2 node3
  do
    echo "---------$node---------"
    ssh $node "source /etc/profile;/data/zookeeper/bin/zkServer.sh restart"
  done
};;
esac

3.chmod +x zk_run_all.sh

4. 一些操作
  bash zk_run_all.sh start	# 启动
  bash zk_run_all.sh stop	# 停止
  bash zk_run_all.sh status	# 查看状态
  bash zk_run_all.sh restart    # 重启