zookeeper集群搭建

2019年6月5日10:28:19 发表评论 2,674 ℃

参考官方文档:https://zookeeper.apache.org/doc/r3.4.14/zookeeperStarted.html#sc_Download

前提:部署好java环境

一、单机部署

1、下载官网文档版安装包

#wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.14.tar.gz

#tar zxf zookeeper-3.4.14.tar.gz -C /data/app/zookeeper


2、配置文件配置

#mkdir -pv /data/data/zookeeper/{data,logs}

#cd /data/app/zookeeper/conf

#cp zoo_sample.cfg zoo.cfg

#cat zoo.cfg      #创建配置文件

tickTime=2000

dataDir=/data/data/zookeeper/data

clientPort=2181

tickTime:ZooKeeper使用的基本时间单位(以毫秒为单位)。它用于做心跳,最小会话超时将是tickTime的两倍。

dataDir:存储内存数据库快照的位置,除非另有说明,否则为数据库更新的事务日志。

clientPort:侦听客户端连接的端口


3、启动测试

#useradd  -M -s /sbin/nologin zookeeper

#chown -R zookeeper.zookeeper /data/app/zookeeper /data/data/zookeeper

以普通用户启动脚本

#!/bin/bash
zkFile='/data/app/zookeeper/bin/zkServer.sh'
cd /data/app/zookeeper/bin/
case $1 in
    start)
        su zookeeper -s /bin/bash -c "${zkFile} start"  ;;
    stop)
        ${zkFile} stop ;;
    restart)
        ${zkFile} stop
        su zookeeper -s /bin/bash -c "${zkFile} start"  ;;
    status)
        ${zkFile} status;;
    upgrade)
        ${zkFile} upgrade;;
    print-cmd)
        ${zkFile} print-cmd;;
    start-foreground)
        ${zkFile} start-foreground;;
    *)
        echo "参数错误!" ;;
esac


二、单机伪集群部署

先按照单机部署步骤,先下载解压程序文件。

1、创建配置文件

#cd /data/app/zookeeper/conf

#cat zoo1.cfg

tickTime=2000

initLimit=5

syncLimit=2

dataDir=/data/data/zookeeper1/data

clientPort=2181

dataLogDir=/data/data/zookeeper1/logs

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

#cat zoo2.cfg

tickTime=2000

initLimit=5

syncLimit=2

dataDir=/data/data/zookeeper2/data

clientPort=2182

dataLogDir=/data/data/zookeeper2/logs

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

#cat zoo3.cfg

tickTime=2000

initLimit=5

syncLimit=2

dataDir=/data/data/zookeeper3/data

clientPort=2183

dataLogDir=/data/data/zookeeper3/logs

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889


2.创建数据文件夹和日志文件夹

#mkdir -pv /data/data/zookeeper{1..3}/{data,logs}

#echo "1" > /data/data/zookeeper1/data/myid

#echo "2" > /data/data/zookeeper2/data/myid

#echo "3" > /data/data/zookeeper3/data/myid

#chown -R zookeeper.zookeeper /data/app/zookeeper /data/data/zookeeper*


3、创建普通用户启动脚本

#!/bin/bash
zkFile='/data/app/zookeeper/bin/zkServer.sh'
confFile='/data/app/zookeeper/conf'
cd /data/app/zookeeper/bin/
case $1 in
    start)
        su zookeeper -s /bin/bash -c "${zkFile} start ${confFile}/${2}"  ;;
    stop)
        ${zkFile} stop ${confFile}/${2};;
    restart)
        ${zkFile} stop ${confFile}/${2}
        su zookeeper -s /bin/bash -c "${zkFile} start ${confFile}/${2}"  ;;
    status)
        ${zkFile} status ${confFile}/${2};;
    upgrade)
        ${zkFile} upgrade ${confFile}/${2};;
    print-cmd)
        ${zkFile} print-cmd ${confFile}/${2};;
    start-foreground)
        ${zkFile} start-foreground ${confFile}/${2};;
    *)
        echo "参数错误!" ;;
esac

#  ./zk-cluster.sh start zoo2.cfg

#  ./zk-cluster.sh start zoo1.cfg

#  ./zk-cluster.sh start zoo3.cfg


4、测试

# ./zkCli.sh -server 127.0.0.1:2183

[zk: 127.0.0.1:2183(CONNECTED) 4] create /test test123

Created /test

[zk: 127.0.0.1:2183(CONNECTED) 5] quit

# ./zkCli.sh -server 127.0.0.1:2181

[zk: 127.0.0.1:2181(CONNECTED) 0] ls /

[zookeeper, test]

[zk: 127.0.0.1:2181(CONNECTED) 1] get /test

test123

cZxid = 0x400000004

ctime = Mon Apr 29 14:17:49 CST 2019

mZxid = 0x400000004

mtime = Mon Apr 29 14:17:49 CST 2019

pZxid = 0x400000004

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 7

numChildren = 0


三、多服务器集群部署(至少三台服务器)

1、每台服务器按照步骤一的安装部署下载解压,然后配置文件更改为:

#cat zoo.cfg

tickTime=2000

initLimit=5

syncLimit=2

dataDir=/data/data/zookeeper/data

clientPort=2181

dataLogDir=/data/data/zookeeper/logs

server.1=172.16.2.5:2888:3888

server.2=172.16.2.6:2888:3888

server.3=172.16.2.7:2888:3888


2、创建文件和文件夹

数据文件夹、日志文件夹、myid文件


3、使用步骤一单机普通用户启动脚本分别启动每个服务器的服务。

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: