当前位置:   article > 正文

linux部署zookeeper单点和集群并使用zkweb.jar管理

zkweb

单点部署

(1)下载zookeeper

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz

(2)解压软件

tar xf apache-zookeeper-3.8.1-bin.tar.gz -C /oldboyedu/softwares/

(3)配置环境变量 

  1. [root@elk101 ~]# cat /etc/profile.d/zk.sh
  2. #!/bin/bash
  3. export ZK_HOME=/oldboyedu/softwares/apache-zookeeper-3.8.1-bin
  4. export PATH=$PATH:$ZK_HOME/{bin}
  5. [root@elk101 ~]# source /etc/profile.d/zk.sh

(4)创建配置文件

[root@elk101 ~]# cp /oldboyedu/softwares/apache-zookeeper-3.8.1-bin/conf/{zoo_sample,zoo}.cfg

(5)启动zookeeper服务

  1. [root@elk101 ~]# zkServer.sh start # 启动zookeeper服务
  2. [root@elk101 ~]# zkServer.sh status # 查看zookeeper服务状态
  3. [root@elk101 ~]# zkServer.sh stop # 停止zookeeper服务
  4. [root@elk101 ~]# zkServer.sh restart # 重启zookeeper服务

 (6)确定zookeeper服务后,测试zookeeper服务是否可用

  1. [root@elk101 ~]# zkCli.sh
  2. ....
  3. [zk: localhost:2181(CONNECTED) 0] ls /
  4. [zookeeper]
  5. [zk: localhost:2181(CONNECTED) 1]

 zookeeper集群部署

1.创建配置文件

  1. [root@elk101 ~]# cat > /oldboyedu/softwares/apache-zookeeper-3.8.1-bin/conf/zoo.cfg <<EOF
  2. # 定义最小单元的时间范围tick。
  3. tickTime=2000
  4. # 启动时最长等待tick数量。
  5. initLimit=5
  6. # 数据同步时最长等待的tick时间进行响应ACK
  7. syncLimit=2
  8. # 指定数据目录
  9. dataDir=/oldboyedu/data/zk
  10. # 监听端口
  11. clientPort=2181
  12. # 开启四字命令允许所有的节点访问。
  13. 4lw.commands.whitelist=*
  14. # server.ID=A:B:C[:D]
  15. # ID:
  16. # zk的唯一编号。
  17. # A:
  18. # zk的主机地址。
  19. # B:
  20. # leader的选举端口,是谁leader角色,就会监听该端口。
  21. # C:
  22. # 数据通信端口。
  23. # D:
  24. # 可选配置,指定角色。
  25. server.101=10.0.0.101:2888:3888
  26. server.102=10.0.0.102:2888:3888
  27. server.103=10.0.0.103:2888:3888
  28. EOF

2.同步zookeeper软件包及目录结构

  1. [root@elk101 ~]# mkdir /oldboyedu/data/zk
  2. [root@elk101 ~]#
  3. [root@elk101 ~]# data_rsync.sh /oldboyedu/softwares/apache-zookeeper-3.8.1-bin/
  4. [root@elk101 ~]#
  5. [root@elk101 ~]# data_rsync.sh /oldboyedu/data/zk
  6. [root@elk101 ~]#
  7. [root@elk101 ~]# data_rsync.sh /etc/profile.d/zk.sh
  8. #编写同步脚本
  9. [root@elk101 ~]# cat > /usr/local/sbin/data_rsync.sh <<'EOF'
  10. #!/bin/bash
  11. # Auther: Jason Yin
  12. if [ $# -ne 1 ];then
  13. echo "Usage: $0 /path/to/file(绝对路径)"
  14. exit
  15. fi
  16. # 判断文件是否存在
  17. if [ ! -e $1 ];then
  18. echo "[ $1 ] dir or file not find!"
  19. exit
  20. fi
  21. # 获取父路径
  22. fullpath=`dirname $1`
  23. # 获取子路径
  24. basename=`basename $1`
  25. # 进入到父路径
  26. cd $fullpath
  27. for ((host_id=102;host_id<=103;host_id++))
  28. do
  29. # 使得终端输出变为绿色
  30. tput setaf 2
  31. echo ===== rsyncing elk${host_id}: $basename =====
  32. # 使得终端恢复原来的颜色
  33. tput setaf 7
  34. # 将数据同步到其他两个节点
  35. rsync -apz $basename `whoami`@elk${host_id}:$fullpath
  36. if [ $? -eq 0 ];then
  37. echo "命令执行成功!"
  38. fi
  39. done
  40. EOF

3.每个zookeeper节点创建唯一标识ID

[root@elk101 ~]# for ((host_id=101;host_id<=103;host_id++)) do ssh elk${host_id} "echo ${host_id} > /oldboyedu/data/zk/myid";done

4.编写zookeeper集群管理脚本

  1. [root@elk101 ~]# cat /usr/local/sbin/manager_zk.sh
  2. #!/bin/bash
  3. #判断用户是否传参
  4. if [ $# -ne 1 ];then
  5. echo "无效参数,用法为: $0 {start|stop|restart|status}"
  6. exit
  7. fi
  8. #获取用户输入的命令
  9. cmd=$1
  10. #定义函数功能
  11. function zookeeperManger(){
  12. case $cmd in
  13. start)
  14. echo "启动服务"
  15. remoteExecution start
  16. ;;
  17. stop)
  18. echo "停止服务"
  19. remoteExecution stop
  20. ;;
  21. restart)
  22. echo "重启服务"
  23. remoteExecution restart
  24. ;;
  25. status)
  26. echo "查看状态"
  27. remoteExecution status
  28. ;;
  29. *)
  30. echo "无效参数,用法为: $0 {start|stop|restart|status}"
  31. ;;
  32. esac
  33. }
  34. #定义执行的命令
  35. function remoteExecution(){
  36. for (( i=101 ; i<=103 ; i++ )) ; do
  37. tput setaf 2
  38. echo ========== elk${i} zkServer.sh $1 ================
  39. tput setaf 9
  40. ssh elk${i} "source /etc/profile.d/zk.sh; zkServer.sh $1 2>/dev/null"
  41. done
  42. }
  43. #调用函数
  44. zookeeperManger
  45. [root@elk101 ~]#
  46. [root@elk101 ~]# chmod +x /usr/local/sbin/manager_zk.sh

5.启动zookeeper集群

[root@elk101 ~]# manager_zk.sh start

6.查看集群状态

[root@elk101 ~]# manager_zk.sh status

使用zkWeb.jar来管理ZK集群:
    1.下载zkWeb.jar 
[root@elk101 ~]# wget http://192.168.11.253/ElasticStack/day09/softwares/zkWeb-v1.2.1.jar

    2.运行jar包
[root@elk101 ~]# nohup java -jar zkWeb-v1.2.1.jar &>/tmp/zkWeb.log &

    3.图形使用

监听端口8099

进入图形界面后需要设置名称、集群节点和超时时间

 

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

闽ICP备14008679号