欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

常见问题

ZooKeeper入门教程二在单机和集群环境下的安装搭建及使用

作者:用户投稿2026-01-11 06:23:00
目录
  • 1、下载
  • 2、解压
    • 3、创建配置文件
  • 4、单机启动ZooKeeper
    • 5、通过客户端连接ZooKeeper
      • 6、通过客户端执行基本命令
        • 7、集群配置和启动
          • 小结:

            通过本篇学习掌握zookeeper环境的搭建,为后续学习做好准备

            1、下载

            首先我们下载最新稳定版本的zookeeper

            https://www./softs/578345.html

            2、解压

            下载完成后,我们解开压缩包

            3、创建配置文件

            解压后的路径下找到conf文件夹,进入conf文件夹复制zoo_sample.cfg,命名为zoo.cfg

            # 每个tick的毫秒数。后面的initLimit和syncLimit都以tick为单位
            tickTime=2000
            #初始化同步阶段时长
            initLimit=10
            # 同步确认时长
            syncLimit=5
            # 快照存储路径,不要使用/tmp。这里使用只是为了示例
            dataDir=/tmp/zookeeper
            # 客户端端口好
            clientPort=2181
            
            #可连接的client的最大数
            #如果需要处理更多的clinet,请增加此数量
            #maxClientCnxns=60
            # 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

            对于学习来说,一般无需做修改。生产环境,需要修改dataDir。其他参数后续调优。

            4、单机启动ZooKeeper

            在ZooKeeper根目录下执行 bin/zkServer.sh start

            ➜  zookeeper-3.4.12 bin/zkServer.sh start
            ZooKeeper JMX enabled by default
            Using config: /Users/yimingli/dev/tool/zookeeper-3.4.12/bin/../conf/zoo.cfg
            Starting zookeeper ... STARTED

            5、通过客户端连接ZooKeeper

            ➜  zookeeper-3.4.12 bin/zkCli.sh

            6、通过客户端执行基本命令

            1、创建znode,名为/my_test,携带数据testData

            [zk: localhost:2181(CONNECTED) 0] create /my_test testData

            2、查看znode信息

            [zk: localhost:2181(CONNECTED) 2] get /my_test

            返回如下:

            testData
            cZxid = 0x2e9
            ctime = Mon Oct 29 10:50:46 CST 2018
            mZxid = 0x2e9
            mtime = Mon Oct 29 10:50:46 CST 2018
            pZxid = 0x2e9
            cversion = 0
            dataVersion = 0
            aclVersion = 0
            ephemeralOwner = 0x0
            dataLength = 8
            numChildren = 0

            3、修改znode数据

            [zk: localhost:2181(CONNECTED) 3] set /my_test testDataV2

            4、创建子znode

            [zk: localhost:2181(CONNECTED) 0] create /my_test/tester1 testData

            5、列出子znode

            [zk: localhost:2181(CONNECTED) 5] ls  /my_test
            [tester1]

            6、删除znode

            有子节点的znode不能直接删除,否则会报错。

            [zk: localhost:2181(CONNECTED) 6] delete /my_test
            Node not empty: /my_test

            我们删除/my_test/tester1。

            [zk: localhost:2181(CONNECTED) 8] delete /my_test/tester1

            再次查看该znode。

            [zk: localhost:2181(CONNECTED) 9] get /my_test/tester1
            Node does not exist: /my_test/tester1

            已经被成功删除了。

            7、集群配置和启动

            我们配置和启动一个三台server的集群。

            1、修改zoo.cfg文件

            tickTime=2000
            dataDir=/var/lib/zookeeper
            clientPort=2181
            initLimit=5
            syncLimit=2
            server.1=ip1:2888:3888
            server.2=ip2:2888:3888
            server.3=ip3:2888:3888

            initLimit,zookeeper用来限制zookeeper服务器连接到leader的时长。

            syncLimit,一个服务器多久在leader那里过期。

            以上两种过期时间,单位都是tickTime,

            本例initLimit时长为5个tickTime=5*2000ms=10秒

            server.x列出了所有的zookeeper服务。集群启动它通过查看data下面的myid来知道自己是哪台服务器。

            2888用来连接其它server。3888用来leader选举。

            2、复制2份zookeeper到另外两台server上。

            3、在配置的dataDir路径下创建myid文件,文件内容为对应自己的server.x的x值。比如zoo1这台sever,myid文件中内容为1.

            4、启动每个zookeeper

            5、查看本机状态,是leader还是follower

            ➜  zookeeper-3.4.12 bin/zkServer.sh status

            至此我们已经把zookeeper集群启动起来了,并且做了验证,有一台是leader,另外两台是follower。

            我们还可以做个实验,看zookeeper集群是否工作正常。

            1、连接其中一台server,创建一个znode。

            ➜  zookeeper-3.4.12 bin/zkCli.sh -server ip1:2181
            [zk: ip1:2181(CONNECTED) 10] create /zk_test my_data

            2、连接另外一台server,列出所有根节点下znode。

            ➜  zookeeper-3.4.12 bin/zkCli.sh -server ip2:2181
            [zk: ip2:2181(CONNECTED) 10] ls /

            输出如下:

            [zk_test]

            可以看到集群已经能够正常工作,server间可以正常进行数据的复制。

            客户端连接集群方法如下:

            ➜  zookeeper-3.4.12 bin/zkCli -server ip1:2181,ip2:2181,ip3:2181

            客户端会自动随机选择集中一台连接。

            小结:

            至此,ZooKeeper单机环境和集群环境的搭建讲解完成,更多关于ZooKeeper单机集群环境的安装搭建使用的资料请关注其它相关文章!