zookeer的安装(linux下)

本文详细介绍了在已安装JDK的环境下,如何下载、解压并配置ZooKeeper,包括编辑配置文件、设置环境变量及启动服务的步骤。同时,提供了配置集群的额外指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装条件

     在安装好jdk的环境下,可正常安装zookeeper

2.下载与解压

     先进入/usr/local目录下,通过命令wget命令下载

       [root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

    下载完成后,通过tar -zxvf解压文件

        [root@localhost local]# tar -zxvf zookeeper-3.4.13.tar.gz

3.编辑配置文件

      a:进入config

            [root@localhost local]# cd zookeeper-3.4.13/conf

      b:将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名)

             [root@localhost conf]# cp zoo_sample.cfg zoo.cfg

      c:编辑zoo.cfg

           [root@localhost conf]# vim zoo.cfg

      d:按i进入编辑模式,修改下面内容

           dataDir=/tmp/zookeeper/data

           dataLogDir=/tmp/zookeeper/log

           如果配置集群的话:

               在clientPort配置下面增加ip

                 server.1=192.168.180.132:2888:3888

                 server.2=192.168.180.133:2888:3888

                 server.3=192.168.180.134:2888:3888

         e:在tmp目录下创建文件夹

                 [root@localhost conf]# mkdir /tmp/zookeeper

                 [root@localhost conf]# mkdir /tmp/zookeeper/data

                 [root@localhost conf]# mkdir /tmp/zookeeper/log

               如果配置集群的话,还需要在前面配置过的dataDir路径下新增myid文件

                    [root@localhost conf]# cd /tmp/zookeeper/data

                    [root@localhost data]# touch myid

                    [root@localhost data]# vim myid

                      在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。

           4:配置环境变量

                   a:上面的操作都完事之后,我们需要配置一下环境变量,配置环境变量的命令如下:

                   [root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/

                    [root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

            5:启动

                

a.进入bin目录,并启动zookeep。如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh:  No such file or directory

注意:  ./zkServer.sh start前面的 .  不可忽略。

[root@localhost local]# cd /usr/local/zookeeper-3.4.13/bin
[root@localhost bin]# ./zkServer.sh start

b.启动成功效果如下:

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

c.zookeeper的服务端启动后,还需要启动zookeeper的客户端:

[root@localhost bin]# ./zkCli.sh

如果是连接多个不同的主机节点,可以使用如下命令:

./zkCli.sh -server 192.168.180.132:2888

启动成功效果如下:

复制代码

Connecting to localhost:2181
..........
..........
..........
Welcome to ZooKeeper!
2018-10-25 21:04:54,407 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-10-25 21:04:54,471 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

复制代码

 

d.查看状态:
 

[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: standalone

  

            

### 关于ZooKeeper的面试题整理及答案解析 #### 1. ZooKeeper 的核心概念有哪些? ZooKeeper 是一个分布式协调服务,其核心概念包括以下几个方面[^2]: - **一致性模型**:ZooKeeper 提供了一致性保证,客户端可以在任何服务器上看到相同的数据视图。 - **顺序编号 (zxid)**:所有更新操作都具有全局唯一的事务 ID,即 zxid,用于维护更新的全局顺序[^3]。 #### 2. ZooKeeper 的应用场景有哪些? ZooKeeper 常见的应用场景如下: - **配置管理**:集中存储系统的配置信息,并允许动态修改这些配置。 - **命名服务**:为分布式系统中的节点提供统一的名字空间。 - **分布式锁**:通过临时节点实现互斥访问控制。 - **集群管理**:监控集群成员的状态变化并通知其他组件。 #### 3. 如何理解 ZooKeeper 的有序性和一致性? ZooKeeper 的有序性体现在每次更新都会分配一个唯一的 zxid 来表示该次更新的时间戳。这种机制确保了所有更新操作在全球范围内按序执行。 对于一致性,ZooKeeper 实现了强一致性的协议 Paxos 或 Zab 协议来保障数据同步[^2]。 #### 4. ZooKeeper 中 Watcher 的工作机制是什么? Watcher 是一种观察者模式,在指定路径发生变化时触发回调函数。需要注意的是,Watchers 只能被触发一次,如果希望持续监听,则需要重新设置 watcher[^2]。 #### 5. 数据模型的特点以及它如何支持树形结构? ZooKeeper 使用类似于文件系统的层次化目录结构作为它的数据模型。每个 znode(节点)既可以保存少量数据也可以拥有子节点。此外,还存在两种类型的 znodes —— 持久节点和临时节点[^2]。 ```java // 创建持久节点示例代码 String path = "/example"; Stat stat = new Stat(); byte[] data = "some_data".getBytes(); try { zk.create(path, data, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } catch (Exception e) { System.out.println(e.getMessage()); } ``` #### 6. Leader 和 Follower 在 ZooKeeper 中的作用分别是什么? Leader 负责处理写请求并将变更广播给 Followers;Followers 接收来自 Client 的只读查询请求并向 Leader 报告状态更新情况。当发生网络分区或者崩溃恢复期间选举新 leader 时,Quorum 成员共同参与投票过程决定最终胜出方。 --- ### 相关问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值