zookeeper集群部署

Posted BIGDATA_N1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper集群部署相关的知识,希望对你有一定的参考价值。

zookeeper集群部署

服务器基本信息

ip地址安装服务用户名host
12.0.2.20zookeeper-3.5.9mppadminqfs001
12.0.2.21zookeeper-3.5.9mppadminqfs002
12.0.2.22zookeeper-3.5.9mppadminqfs003

1 安装zookeeper

1.1 下载安装包apache-zookeeper-3.5.9-bin.tar.gz

# 解压安装包
[mppadmin@qfs001 ~]$ tar -zxf apache-zookeeper-3.5.9-bin.tar.gz
[mppadmin@qfs001 ~]$ mv apache-zookeeper-3.5.9-bin zookeeper-3.5.9
# 建立数据与日志存放路径
[mppadmin@qfs001 ~]$ cd zookeeper-3.5.9
[mppadmin@qfs001 apache-zookeeper-3.5.9-bin]$ mkdir logs
[mppadmin@qfs001 apache-zookeeper-3.5.9-bin]$ mkdir data
# 配置zookeeper
[mppadmin@qfs001 ~]$ cd zookeeper-3.5.9/conf
[mppadmin@qfs001 conf]$ cp zoo_sample.cfg zoo.cfg
[mppadmin@qfs001 conf]$ vi zoo.cfg
clientPort=2181
dataDir=/home/mppadmin/zookeeper-3.5.9/data
dataLogDir=/home/mppadmin/zookeeper-3.5.9/logs
server.0=12.0.2.20:2888:3888
server.1=12.0.2.21:2888:3888
server.2=12.0.2.22:2888:3888

1.2 在zookeeper-3.5.9/data目录下新建文件myid,写入server对应编号

[mppadmin@qfs001 data]$ cat myid
0

2 扩展到其他节点

2.1 把zookeeper-3.5.9文件复制到其他节点

[mppadmin@qfs001 ~]$ scp -r zookeeper-3.5.9/ mppadmin@qfs002:~
[mppadmin@qfs001 ~]$ scp -r zookeeper-3.5.9/ mppadmin@qfs003:~

2.2 其他节点修改sever对应编号

[mppadmin@qfs002 data]$ cat myid 
1
[mppadmin@qfs003 data]$ cat myid 
2

3 单节点启动停止服务

# 启动服务
[mppadmin@qfs001 zookeeper-3.5.9]$ ./bin/zkServer.sh start
# 停止服务
[mppadmin@qfs001 zookeeper-3.5.9]$ ./bin/zkServer.sh stop

4 配置集群启动停止服务

[root@qfs001 ~]# vi /etc/profile
# ZOOKEEPER_HOME author:yyliu
export ZK_HOME=/home/mppadmin/zookeeper-3.5.9
export PATH=$ZK_HOME/bin:$PATH

编写集群启动停止服务

# 编写zookeeper分布式启动脚本,可以输入start|stop|restart|status命令
#! /bin/bash

# 设置Zookeeper集群节点地址
hosts=(qfs001 qfs002 qfs003)

# 获取输入命令参数
cmd=$1

# 执行分布式管理命令    
function zookeeper()
{
        for i in ${hosts[@]}
                do
                        #echo Zookeeper node is $i, run $cmd command.
                        ssh mppadmin@$i "source /etc/profile;zkServer.sh $cmd;echo Zookeeper node is $i, run $cmd command." &
                        sleep 1
                done
}

# 判断输入的Zookeeper命令参数是否有效
case "$1" in
    start)
        zookeeper
        ;;
    stop)
        zookeeper
        ;;
    status)
         zookeeper
        ;;
    start-foreground)
         zookeeper
        ;;
    upgrade)
         zookeeper
        ;;
    restart)
        zookeeper
        ;;
    print-cmd)
        zookeeper
        ;;
    *)
        echo "Usage: $0 {start|start-foreground|stop|restart|status|upgrade|print-cmd}"
        RETVAL=1
esac
# 集群启动服务
[mppadmin@qfs001 zookeeper-3.5.9]$ zk_daemons.sh start
# 集群停止服务
[mppadmin@qfs001 zookeeper-3.5.9]$ zk_daemons.sh stop

以上是关于zookeeper集群部署的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper集群部署

zookeeper集群+kafka集群 部署

K8s部署Zookeeper集群

ZooKeeper 集群部署

Zookeeper集群部署

zookeeper集群的部署