当前位置:   article > 正文

zookeeper 集群搭建_build 11.0.18+9-lts-195

build 11.0.18+9-lts-195

准备环境修改hostname

  1. # 永久修改hostname
  2. [root@bogon java]# hostnamectl set-hostname server-247
  3. [root@bogon java]#
  4. [root@bogon java]# hostname
  5. server-247
  6. [root@bogon java]#

1部署Java环境

因为部署zookeeper需要java环境,所以需要从Oracle官网https://www.oracle.com/cn/java/technologies/downloads/#java11下载jdk安装部署,我下载版本是java11版本,下载版本截图如下:

 

具体部署脚本如下:

# 新建java目录
mkdir /usr/java
 
# 切换到安装包目录
cd /root/zookeeper
 
# 解压jdk二进制安装包到java目录下
tar zxvf jdk-11.0.18_linux-x64_bin.tar.gz -C /usr/java
 
# 删除java文件夹
rm -rf /usr/java/jdk1.8.0_351
 
# 分发java目录到77和76服务器对应目录上
scp -r /usr/java/jdk-11.0.18 root@192.168.2.77:/usr/java/jdk-11.0.18
scp -r /usr/java/jdk-11.0.18 root@192.168.2.76:/usr/java/jdk-11.0.18

  1. # 247 环境
  2. # 解压到指定路径
  3. tar zxvf jdk-11.0.18_linux-x64_bin.tar.gz -C /usr/java
  4. #将解压后java 分发到76,77 服务器指定路径下
  5. scp -r /usr/java/jdk-11.0.18 root@192.168.2.77:/usr/java/jdk-11.0.18
  6. scp -r /usr/java/jdk-11.0.18 root@192.168.2.76:/usr/java/jdk-11.0.18

配置环境变量

vim /etc/profile
用vim编辑器来编辑profile文件,在文件末尾添加一下内容:
#java环境变量添加

# 编辑profile文件配置java环境变量
vi /etc/profile
# 配置java环境变量
#config jdk11-0-18

#config jdk11-0-18
export JAVA_HOME=/usr/java/jdk-11.0.18
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=${JAVA_HOME}/bin:$PATH

# 保存退出
:wq

  1. # vi /etc/profile
  2. #config jdk11-0-18
  3. #config jdk11-0-18
  4. export JAVA_HOME=/usr/java/jdk-11.0.18
  5. export JRE_HOME=${JAVA_HOME}/jre
  6. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
  7. export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
  8. export PATH=${JAVA_HOME}/bin:$PATH
  9. #config zookeeper EVN
  10. # 刷新profile文件使其java环境变量生效
  11. [root@localhost java]#
  12. [root@localhost java]# source /etc/profile
  13. [root@localhost java]#
  14. # 测试JDK安装是否成功
  15. # java -version 出现安装版本信息
  16. [root@localhost java]# java -version
  17. java version "11.0.18" 2023-01-17 LTS
  18. Java(TM) SE Runtime Environment 18.9 (build 11.0.18+9-LTS-195)
  19. Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.18+9-LTS-195, mixed mode)
  20. [root@localhost java]#

配置76,77 环境的jdk,步骤同 248,247

  1. # vi /etc/profile
  2. # 将以下参数添加到 /etc/profile
  3. #config jdk11-0-18
  4. export JAVA_HOME=/usr/java/jdk-11.0.18
  5. export JRE_HOME=${JAVA_HOME}/jre
  6. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
  7. export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
  8. export PATH=${JAVA_HOME}/bin:$PATH
  9. #config zookeeper EVN
  10. export ZOOKEEPER_HOME=/root/zookeeper/apache-zookeeper-3.7.1-bin
  11. # config PATH ENV
  12. export PATH=$PATH:${JAVA_PATH}:${ZOOKEEPER_HOME}/bin
  13. # 刷新
  14. # source /etc/profile
  15. # 验证java
  16. [root@server-76 java]# java -version
  17. java version "11.0.18" 2023-01-17 LTS
  18. Java(TM) SE Runtime Environment 18.9 (build 11.0.18+9-LTS-195)
  19. Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.18+9-LTS-195, mixed mode)
  20. [root@server-76 java]#

下载安装Zookeeper

下载zookeeper

解压到指定路径下

  1. # 官网下载zookeeper
  2. # 新建 /home/Tools 目录,将下载zookeeper 上传至 此路径
  3. #创建 安装目录
  4. [root@localhost Tools]# mkdir /root/zookeeper
  5. # 解压到指定目录 (# 解压zookeeper安装包到其目录下)
  6. [root@localhost java]# cd /home/Tools/
  7. [root@localhost Tools]# ls
  8. apache-zookeeper-3.7.1-bin.tar.gz jdk-11.0.18_linux-x64_bin.tar.gz
  9. [root@localhost Tools]# ll
  10. total 177716
  11. -rw-r--r--. 1 root root 12649765 Apr 3 15:44 apache-zookeeper-3.7.1-bin.tar.gz
  12. -rw-r--r--. 1 root root 169328243 Apr 3 15:22 jdk-11.0.18_linux-x64_bin.tar.gz
  13. [root@localhost Tools]#
  14. [root@localhost Tools]#
  15. [root@localhost Tools]# tar zvxf apache-zookeeper-3.7.1-bin.tar.gz -C /root/zookeeper
  16. apache-zookeeper-3.7.1-bin/docs/
  17. apache-zookeeper-3.7.1-bin/docs/skin/
  18. ....
  19. # 查看/root/zookeeper
  20. [root@server-248 zookeeper]# pwd
  21. /root/zookeeper
  22. [root@server-248 zookeeper]#
  23. [root@server-248 zookeeper]# ll
  24. total 0
  25. drwxr-xr-x. 6 root root 133 Apr 3 16:19 apache-zookeeper-3.7.1-bin
  26. [root@server-248 zookeeper]#

配置环境变量

  1. # vi /etc/profile
  2. # 最后一行添加
  3. #config zookeeper EVN
  4. export ZOOKEEPER_HOME=/root/zookeeper/apache-zookeeper-3.7.1-bin
  5. # config PATH ENV
  6. export PATH=$PATH:${JAVA_PATH}:${ZOOKEEPER_HOME}/bin
  7. # :wq! 保存
  8. # 刷新 /etc/profile
  9. [root@server-248 zookeeper]# source /etc/profile

# 用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中
mv $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
 
# 创建zookeeper数据目录
mkdir $ZOOKEEPER_HOME/data
 
# 创建zookeeper日志目录
mkdir $ZOOKEEPER_HOME/logs
 
 

  1. # 用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中
  2. # mv $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
  3. [root@server-248 conf]# pwd
  4. /root/zookeeper/apache-zookeeper-3.7.1-bin/conf
  5. [root@server-248 conf]#
  6. [root@server-248 conf]# ll
  7. total 12
  8. -rw-r--r--. 1 yusur yusur 535 May 7 2022 configuration.xsl
  9. -rw-r--r--. 1 yusur yusur 3435 May 7 2022 log4j.properties
  10. -rw-r--r--. 1 yusur yusur 1148 May 7 2022 zoo_sample.cfg # 将此文件重命名为zoo.cfg
  11. [root@server-248 conf]#
  12. [root@server-248 conf]#
  13. [root@server-248 conf]# mv $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
  14. [root@server-248 conf]#
  15. [root@server-248 conf]# ll
  16. total 12
  17. -rw-r--r--. 1 yusur yusur 535 May 7 2022 configuration.xsl
  18. -rw-r--r--. 1 yusur yusur 3435 May 7 2022 log4j.properties
  19. -rw-r--r--. 1 yusur yusur 1148 May 7 2022 zoo.cfg # 将此文件重命名为zoo.cfg
  20. [root@server-248 conf]#
  1. # 创建zookeeper数据目录
  2. # mkdir $ZOOKEEPER_HOME/data
  3. [root@server-248 apache-zookeeper-3.7.1-bin]# ll
  4. total 36
  5. drwxr-xr-x. 2 yusur yusur 4096 May 7 2022 bin
  6. drwxr-xr-x. 2 yusur yusur 70 Apr 3 16:36 conf
  7. drwxr-xr-x. 5 yusur yusur 4096 May 7 2022 docs
  8. drwxr-xr-x. 2 root root 4096 Apr 3 16:19 lib
  9. -rw-r--r--. 1 yusur yusur 11358 May 7 2022 LICENSE.txt
  10. -rw-r--r--. 1 yusur yusur 2084 May 7 2022 NOTICE.txt
  11. -rw-r--r--. 1 yusur yusur 2214 May 7 2022 README.md
  12. -rw-r--r--. 1 yusur yusur 3570 May 7 2022 README_packaging.md
  13. [root@server-248 apache-zookeeper-3.7.1-bin]#
  14. [root@server-248 apache-zookeeper-3.7.1-bin]# mkdir $ZOOKEEPER_HOME/data
  15. [root@server-248 apache-zookeeper-3.7.1-bin]#
  16. [root@server-248 apache-zookeeper-3.7.1-bin]# ll
  17. total 36
  18. drwxr-xr-x. 2 yusur yusur 4096 May 7 2022 bin
  19. drwxr-xr-x. 2 yusur yusur 70 Apr 3 16:36 conf
  20. drwxr-xr-x. 2 root root 6 Apr 3 16:39 data # 已创建
  21. drwxr-xr-x. 5 yusur yusur 4096 May 7 2022 docs
  22. drwxr-xr-x. 2 root root 4096 Apr 3 16:19 lib
  23. -rw-r--r--. 1 yusur yusur 11358 May 7 2022 LICENSE.txt
  24. -rw-r--r--. 1 yusur yusur 2084 May 7 2022 NOTICE.txt
  25. -rw-r--r--. 1 yusur yusur 2214 May 7 2022 README.md
  26. -rw-r--r--. 1 yusur yusur 3570 May 7 2022 README_packaging.md
  27. [root@server-248 apache-zookeeper-3.7.1-bin]#
  28. [root@server-248 apache-zookeeper-3.7.1-bin]# mkdir $ZOOKEEPER_HOME/logs
  29. [root@server-248 apache-zookeeper-3.7.1-bin]#
  30. [root@server-248 apache-zookeeper-3.7.1-bin]# ll
  31. total 36
  32. drwxr-xr-x. 2 yusur yusur 4096 May 7 2022 bin
  33. drwxr-xr-x. 2 yusur yusur 70 Apr 3 16:36 conf
  34. drwxr-xr-x. 2 root root 6 Apr 3 16:39 data
  35. drwxr-xr-x. 5 yusur yusur 4096 May 7 2022 docs
  36. drwxr-xr-x. 2 root root 4096 Apr 3 16:19 lib
  37. -rw-r--r--. 1 yusur yusur 11358 May 7 2022 LICENSE.txt
  38. drwxr-xr-x. 2 root root 6 Apr 3 16:39 logs # 已创建
  39. -rw-r--r--. 1 yusur yusur 2084 May 7 2022 NOTICE.txt
  40. -rw-r--r--. 1 yusur yusur 2214 May 7 2022 README.md
  41. -rw-r--r--. 1 yusur yusur 3570 May 7 2022 README_packaging.md
  42. [root@server-248 apache-zookeeper-3.7.1-bin]#

# 编辑zookeeper配置文件
vi $ZOOKEEPER_HOME/conf/zoo.cfg
# 插入
i
{
# 配置zookeeper数据目录
dataDir=/root/zookeeper/apache-zookeeper-3.7.1-bin/data
# 配置zookeeper日志目录
dataLogDir=/root/zookeeper/apache-zookeeper-3.7.1-bin/logs
# 配置zookeeper集群,如果是阿里云服务器,当前节点要配置成0.0.0.0:2888:3888
server.1=192.168.2.248:2888:3888
server.2=192.168.2.77:2888:3888
server.3=192.168.2.76:2888:3888
}

  1. # 修改 zoo.cfg 配置文件
  2. # Leader-Follower 初始通信时限 tickTime*5
  3. initLimit=10
  4. # The number of ticks that can pass between
  5. # sending a request and getting an acknowledgement
  6. # Leader-Follower 同步通信时限 tickTime*5
  7. syncLimit=5
  8. # the directory where the snapshot is stored.
  9. # do not use /tmp for storage, /tmp here is just
  10. # example sakes.
  11. # dataDir=/tmp/zookeeper
  12. #修改为自定义的zookeeper数据目录
  13. dataDir=/root/zookeeper/apache-zookeeper-3.7.1-bin/data
  14. #修改为自定义的zookeeper日志目录
  15. dataLogDir=/root/zookeeper/apache-zookeeper-3.7.1-bin/logs
  16. # the port at which the clients will connect
  17. clientPort=2181
  18. server.1=192.168.2.248:2888:3888
  19. server.2=20.1.1.77:2888:3888
  20. server.3=20.1.1.76:2888:3888
  21. server.4=20.1.1.1:2888:3888

# 编辑myid文件,设置zookeeper集群ID,注意集群ID不能重复,集群节点可以依次1、2、3如此类推设置

vi $ZOOKEEPER_HOME/data/myid

  1. # vi /root/zookeeper/apache-zookeeper-3.7.1-bin/data/myid
  2. # 插入1
  3. [root@server-248 data]# pwd
  4. /root/zookeeper/apache-zookeeper-3.7.1-bin/data
  5. [root@server-248 data]# vi myid
  6. 1
  7. :wq!
  8. # 查看
  9. [root@server-248 data]# cat myid
  10. 1
  11. [root@server-248 data]#

# 分发zookeeper目录到76,77,247服务器对应目录上
scp -r /root/zookeeper/apache-zookeeper-3.7.1-bin root@192.168.2.76:/root/zookeeper/apache-zookeeper-3.7.1-bin
scp -r /root/zookeeper/apache-zookeeper-3.7.1-bin root@192.168.2.77:/root/zookeeper/apache-zookeeper-3.7.1-bin

  1. # 分发zookeeper 到 76,77 server
  2. # 248 环境
  3. [root@localhost zookeeper]# scp -r /root/zookeeper/apache-zookeeper-3.7.1-bin root@192.168.2.77:/root/zookeeper/apache-zookeeper-3.7.1-bin
  4. #输入77 root 密码
  5. [root@localhost zookeeper]# scp -r /root/zookeeper/apache-zookeeper-3.7.1-bin root@192.168.2.76:/root/zookeeper/apache-zookeeper-3.7.1-bin
  6. #输入76 root 密码
  7. #输入247 root 密码
  8. [root@localhost zookeeper]# scp -r /root/zookeeper/apache-zookeeper-3.7.1-bin root@192.168.2.247:/root/zookeeper/apache-zookeeper-3.7.1-bin
  9. #输入247 root 密码

根据zookeeper conf文件下的zoo.cfg 文件中的配置修改 /data/myid value

根据 /root/zookeeper/apache-zookeeper-3.7.1-bin/conf/zoo.cfg 中


# the port at which the clients will connect
clientPort=2181
server.1=192.168.2.248:2888:3888
server.2=20.1.1.77:2888:3888
server.3=20.1.1.76:2888:3888

server.4=20.1.1.1:2888:3888

修改77 myid 为2; 

修改76 myid 为3

修改247 myid 为4

  1. # 77 server
  2. [root@server-77 data]# pwd
  3. /root/zookeeper/apache-zookeeper-3.7.1-bin/apache-zookeeper-3.7.1-bin/data
  4. [root@server-77 data]#
  5. [root@server-77 data]# cat myid
  6. 2
  7. [root@server-77 data]#
  8. # 76 server
  9. [root@server-77 data]# pwd
  10. /root/zookeeper/apache-zookeeper-3.7.1-bin/apache-zookeeper-3.7.1-bin/data
  11. [root@server-77 data]#
  12. [root@server-77 data]# cat myid
  13. 3
  14. [root@server-77 data]#

启动zookeeper集群

# 启动zk服务: 
sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh start

# 停止zk服务: 
sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh stop

# 重启zk服务: 
sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh restart

注意:启动一台zookeeper 服务器时,查询 status时会报错

只要启动2台时,才可以查询zookeeeper 服务器status

# 查看zk服务状态: 
sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh status

  1. # 启动zk服务:
  2. sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh start
  3. [root@localhost bin]# pwd
  4. /root/zookeeper/apache-zookeeper-3.7.1-bin/bin
  5. [root@localhost bin]#
  6. [root@localhost bin]# ./zkServer.sh start
  7. ZooKeeper JMX enabled by default
  8. Using config: /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
  9. Starting zookeeper ... STARTED
  10. [root@localhost bin]#
  11. # 停止zk服务:
  12. # sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh stop
  13. [root@localhost bin]# pwd
  14. /root/zookeeper/apache-zookeeper-3.7.1-bin/bin
  15. [root@localhost bin]# ./zkServer.sh stop
  16. ZooKeeper JMX enabled by default
  17. Using config: /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
  18. Stopping zookeeper ... STOPPED
  19. [root@localhost bin]#
  20. # 重启zk服务:
  21. sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh restart
  22. [root@localhost bin]# pwd
  23. /root/zookeeper/apache-zookeeper-3.7.1-bin/bin
  24. [root@localhost bin]# ./zkServer.sh stop
  25. ZooKeeper JMX enabled by default
  26. Using config: /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
  27. Stopping zookeeper ... STOPPED
  28. [root@localhost bin]#
  29. # 查看zk服务状态:
  30. sh /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/zkServer.sh status
  1. # 启动一台zookeeper server时,查询状态报错如下:
  2. [root@server-76 bin]# ./zkServer.sh status
  3. ZooKeeper JMX enabled by default
  4. Using config: /root/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
  5. Client port found: 2181. Client address: localhost. Client SSL: false.
  6. Error contacting service. It is probably not running.
  7. [root@server-76 bin]#

Zookeeper 自启动

  1. #切换到/etc/rc.d/init.d目录,该目录下的脚本就类似与windows中的注册表,在系统启动的时候执行
  2. [root@localhost bin]# cd /etc/rc.d/init.d/
  3. [root@localhost init.d]# pwd
  4. /etc/rc.d/init.d
  5. [root@localhost init.d]# ll
  6. total 40
  7. -rw-r--r--. 1 root root 18281 May 22 2020 functions
  8. -rwxr-xr-x. 1 root root 4569 May 22 2020 netconsole
  9. -rwxr-xr-x. 1 root root 7928 May 22 2020 network
  10. -rw-r--r--. 1 root root 1160 Oct 2 2020 README
  11. [root@localhost init.d]#
  12. [root@localhost init.d]# touch zookeeper
  13. [root@localhost init.d]#
  14. [root@localhost init.d]# ll
  15. total 40
  16. -rw-r--r--. 1 root root 18281 May 22 2020 functions
  17. -rwxr-xr-x. 1 root root 4569 May 22 2020 netconsole
  18. -rwxr-xr-x. 1 root root 7928 May 22 2020 network
  19. -rw-r--r--. 1 root root 1160 Oct 2 2020 README
  20. -rw-r--r--. 1 root root 0 Apr 3 18:16 zookeeper
  21. [root@localhost init.d]#
  22. [root@localhost init.d]# chmod +x zookeeper
  23. [root@localhost init.d]#
  24. [root@localhost init.d]# ll
  25. total 40
  26. -rw-r--r--. 1 root root 18281 May 22 2020 functions
  27. -rwxr-xr-x. 1 root root 4569 May 22 2020 netconsole
  28. -rwxr-xr-x. 1 root root 7928 May 22 2020 network
  29. -rw-r--r--. 1 root root 1160 Oct 2 2020 README
  30. -rwxr-xr-x. 1 root root 0 Apr 3 18:16 zookeeper
  31. [root@localhost init.d]#

查询zookeeper 服务

  1. # 可通过ps -ef 查询zookeeper 是否启动
  2. [root@server-77 bin]# ps -ef|grep zookeep
  3. root 261670 48768 0 18:09 pts/19 00:00:00 grep --color=auto zookeep
  4. [root@server-77 bin]#
  5. [root@server-77 bin]#

关于leader如何确定

目前第二台启动的zookeeper 是leader

若leader stop,第三台zookeeper 由follow 转为 leader

# 第一台zookeeper 永远不会成为leader

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/724518
推荐阅读
相关标签
  

闽ICP备14008679号