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

单点部署

(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)配置环境变量 

[root@elk101 ~]# cat /etc/profile.d/zk.sh
#!/bin/bash

export ZK_HOME=/oldboyedu/softwares/apache-zookeeper-3.8.1-bin
export PATH=$PATH:$ZK_HOME/{bin}

[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服务

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

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

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

 zookeeper集群部署

1.创建配置文件

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

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

[root@elk101 ~]# mkdir /oldboyedu/data/zk
[root@elk101 ~]# 
[root@elk101 ~]# data_rsync.sh /oldboyedu/softwares/apache-zookeeper-3.8.1-bin/
[root@elk101 ~]# 
[root@elk101 ~]# data_rsync.sh /oldboyedu/data/zk
[root@elk101 ~]# 
[root@elk101 ~]# data_rsync.sh /etc/profile.d/zk.sh 

#编写同步脚本
[root@elk101 ~]# cat > /usr/local/sbin/data_rsync.sh <<'EOF'
#!/bin/bash
# Auther: Jason Yin

if  [ $# -ne 1 ];then
   echo "Usage: $0 /path/to/file(绝对路径)"
   exit
fi 

# 判断文件是否存在
if [ ! -e $1 ];then
    echo "[ $1 ] dir or file not find!"
    exit
fi

# 获取父路径
fullpath=`dirname $1`

# 获取子路径
basename=`basename $1`

# 进入到父路径
cd $fullpath

for ((host_id=102;host_id<=103;host_id++))
  do
    # 使得终端输出变为绿色
    tput setaf 2
    echo ===== rsyncing elk${host_id}: $basename =====
    # 使得终端恢复原来的颜色
    tput setaf 7
    # 将数据同步到其他两个节点
    rsync -apz $basename  `whoami`@elk${host_id}:$fullpath
    if [ $? -eq 0 ];then
      echo "命令执行成功!"
    fi
done
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集群管理脚本

[root@elk101 ~]# cat /usr/local/sbin/manager_zk.sh
#!/bin/bash

#判断用户是否传参
if [ $# -ne 1 ];then
    echo "无效参数,用法为: $0  {start|stop|restart|status}"
    exit
fi

#获取用户输入的命令
cmd=$1

#定义函数功能
function zookeeperManger(){
    case $cmd in
    start)
        echo "启动服务"        
        remoteExecution start
        ;;
    stop)
        echo "停止服务"
        remoteExecution stop
        ;;
    restart)
        echo "重启服务"
        remoteExecution restart
        ;;
    status)
        echo "查看状态"
        remoteExecution status
        ;;
    *)
        echo "无效参数,用法为: $0  {start|stop|restart|status}"
        ;;
    esac
}


#定义执行的命令
function remoteExecution(){
    for (( i=101 ; i<=103 ; i++ )) ; do
            tput setaf 2
            echo ========== elk${i} zkServer.sh  $1 ================
            tput setaf 9
            ssh elk${i}  "source /etc/profile.d/zk.sh; zkServer.sh $1 2>/dev/null"
    done
}

#调用函数
zookeeperManger

[root@elk101 ~]# 
[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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值