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 # 重启