zookeeper集群配置

Posted

tags:

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

参考技术A zookeeper集群只有超过半数节点OK集群才能正常工作,所以集群内节点数量最好为奇数

第一步:主机名称到IP地址映射配置(不做映射也可以直接写ip)

ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连 接,所以,在配置的ZooKeeper集群的时候,每一个结点的host到IP地址的映射都要配置上集群中其它结点的映射信息。

例如:

192.168.36.101 slave-01

192.168.36.102 slave-02

192.168.36.103 slave-03

第二步:修改ZooKeeper配置文件

解压出一个zookeeper程序,然后修改配置文件zoo.cfg

tickTime=2000 # Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,每个 tickTime 时间就会发送一个心跳。 dataDir=/home/hadoop/storage/zookeeper #Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里

clientPort=2181 #zookeeper提供服务的接口也就是监听客户端连接的端口

initLimit=5 #用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数。5就表示最长接受5*2000=10秒间隔

syncLimit=2 #Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒

server.1=127.0.0.1:2887:3887

server.2=127.0.0.1:2888:3888

server.3=127.0.0.1:2889:3889

1表示这是第几号服务器/127.0.0.1是服务器ip/2883是集群Leader交换信息的端口/Leader挂了重新选举Leader的端口

第三步:复制分发安装文件

如果各个zookeeper在不同服务器,集群中的zookeeper 配置文件都是跟上面相同的,所以只需要复制然后放在需要的主机上就可以

还有修改dataDir 和logDir 保证各自使用自己的配置文件

例如:

server.1=127.0.0.1:2887:3887

server.2=127.0.0.1:2888:3888

server.3=127.0.0.1:2889:3889

第四步:设置myid

在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,对应于conf/zoo.cfg文件中配置的server.X中的X,例如:server.1的dataDir下应该建立一个myid的文件,其中写入1

第五步:启动ZooKeeper集群

第六步:验证

由于前面的节点在启动时候会尝试去连接其他节点,所以先启动的节点会有报错信息,这是正常的不用理会,等到leader选举出来了就可以正常工作了

Zookeeper安装集群配置

文章目录

Zookeeper安装

官网下载地址:https://zookeeper.apache.org/releases.html

  1. Linux服务器wget命令下载

    windows直接解压设置配置文件然后运行

    #版本号去官网选择自己下载的版本,本地电脑下载再上传也可,随便
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
    #未安装wget,yum安装
    yum install wget -y
    
    #tar命令解压
    tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
    
  2. 编辑配置文件

    到解压出来zookeeper目录下的conf目录下,创建配置文件zoo.cfg

    #复制zookeeper提供的配置文件样例,改为正确的配置文件名称
    cp zoo_sample.cfg zoo.cfg
    

    配置文件中指定数据存储目录和日志目录(不指定用默认的建议指定)

    #数据存储目录
    dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.9-bin/data
    #日志目录
    dataLogDir=/usr/local/zookeeper/apache-zookeeper-3.5.9-bin/logs
    #zookeeper提供了自动清理事务日志和快照文件的功能,指定频率,单位小时,1小时
    autopurge.snapRetainCount=1
    
  3. 启动zookeeper

    zookkeeper安装目录bin目录下执行命令

    #bin目录下执行
    ./zkServer.sh start
    #查看zookeeper状态
    ./zkServer.sh status
    #停止zookeeper
    ./zkServer.sh stop
    #重启zookeeper
    ./zkServer.sh restart
    

Zookeeper集群

  1. 添加myid配置,设置集群中每个服务器的ID

    在zookeeper的data目录下创建一个myid的文件记录服务器的id,内容为1表示这个zookeeper服务器id为1(每个都创建不要重复)

    # >的意思是将输出的内容不输出到控制台输出到文件,文件不存在自动创建,一个>是覆盖内容,两个>>是追加内容,每个服务唯一
    echo 1 > myid
    
  2. 配置文件中添加集群结点信息

    确保用到的端口打开或者关闭防火墙

    #增加集群配置,最好奇数集群
    #server.服务器ID=服务器IP地址:服务器之间通信端口:服务器直接投票选举端口
    server.1=server.ip:server.port1:server.port2
    server.2=server.ip:server.port1:server.port2
    

    查看集群效果Leader,显示 Mode: leader

    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/apache-zookeeper-3.5.9-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: leader
    

Zookeeper配置文件

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.9-bin/data
dataLogDir=/usr/local/zookeeper/apache-zookeeper-3.5.9-bin/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
server.1=192.168.136.133:2888:3888
server.2=192.168.136.132:2888:3888
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
autopurge.purgeInterval=1

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

8.3.ZooKeeper集群安装配置

ZooKeeper集群的安装配置高可用测试

配置ZooKeeper集群11

ActiveMQ 高可用集群安装配置(ZooKeeper + LevelDB)

Dubbo与Zookeeper集群配置

Zookeeper 2Zookeeper的安装和配置(集群模式)