本文最后更新于 1206 天前,其中的信息可能已经有所发展或是发生改变。
环境
- 机器环境
系统 | IP | 配置 |
---|---|---|
Centos7.9 | 192.168.31.201 | 1H2G50G |
Centos7.9 | 192.168.31.202 | 1H2G50G |
Centos7.9 | 192.168.31.203 | 1H2G50G |
- 环境配置
环境 | 版本 | 注释 |
---|---|---|
JDK | jdk-8u321-linux-x64.rpm | rpm 安装即可 |
zookerper | zookeeper-3.8.0 | 下载连接 |
配置免密以及修改hosts
没有其他说明均在node1进行
ssh-keygen -t rsa
ssh-copy-id root@192.168.31.202
ssh-copy-id root@192.168.31.203
配置主机的hostname
node1
hostnamectl set-hostname node1
node2、3
ssh root@192.168.31.202 hostnamectl set-hostname node2
ssh root@192.168.31.203 hostnamectl set-hostname node3
所有的机器添加下列的内容
vim /etc/hosts
node1 192.168.31.201
node2 192.168.31.202
node3 192.168.31.203
JDK的安装
rpm -ivh jdk-8u321-linux-x64.rpm
ssh root@node2 rpm -ivh jdk-8u321-linux-x64.rpm
ssh root@node3 rpm -ivh jdk-8u321-linux-x64.rpm
java -version
[root@node1]# java -version
java version "1.8.0_321"w
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
下载zookeeper
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
解压zookeeper
mkdir -p /usr/local/zookeeper
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/zookeeper
cd /usr/local/zookeeper/apache-zookeeper-3.8.0-bin
mv /bin/ conf/ docs/ lib/ ../
添加环境变量
vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profi
修改配置文件
cd /usr/local/zookeeper/conf/
cp -pr zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/usr/local/logs/zookeeper
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
1.修改日志存放目录
2.添加集群的配置 2888为心跳端口 3888选举端口
配置复制到node2 node3
复制node1的zookeerper的目录到node2 node3
scp -pr /usr/local/zookeeper root@node2:/usr/local/
scp -pr /usr/local/zookeeper root@node3:/usr/local/
note1
echo "1" > /usr/local/logs/zookeeper/myid
node2添加下列配置
echo "2" > /usr/local/logs/zookeeper/myid
node3添加下列配置
echo "3" > /usr/local/logs/zookeeper/myid
所有机器启动zookeeper
cd /usr/local/zookeeper/bin
sh zkServer.sh start
[root@node2 ~]# cd /usr/local/zookeeper/bin
[root@node2 bin]# sh zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
使用方法
JPS查看进程
[root@node1 ~]# ssh root@node1 jps
2617 QuorumPeerMain
64316 Jps
[root@node1 ~]# ssh root@node2 jps
60581 QuorumPeerMain
60684 Jps
[root@node1 ~]# ssh root@node3 jps
59216 QuorumPeerMain
59297 Jps
查看2181进程端口
[root@node1 ~]# netstat -nltp | grep 2181
tcp6 0 0 :::2181 :::* LISTEN 2617/java
[root@node1 ~]# ssh root@node2 netstat -nltp | grep 2181
tcp6 0 0 :::2181 :::* LISTEN 60581/java
[root@node1 ~]# ssh root@node3 netstat -nltp | grep 2181
tcp6 0 0 :::2181 :::* LISTEN 59216/java
测试进程是否同步
打开bin下的zkCli.sh
cd /usr/local/zookeeper/bin
sh zkCli.sh
node1创建test
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] create /test limitrinno
Created /test
[zk: localhost:2181(CONNECTED) 3] ls /
[test, zookeeper]
[zk: localhost:2181(CONNECTED) 4]
node2查看有没有test
cd /usr/local/zookeeper/bin
sh zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[test, zookeeper]
[zk: localhost:2181(CONNECTED) 1]
node3查看有没有test
cd /usr/local/zookeeper/bin
sh zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[test, zookeeper]
[zk: localhost:2181(CONNECTED) 1]
集群完成
创建自启动
- vim /lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper service
After=network.target
[Service]
Type=forking
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/jdk1.8.0_321-amd64/bin/"
User=root
Group=root
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper