zookeeper安装和配置

zookeeper 是一个数据库,  是一个使用树形结构存储的数据库, 可以拥有高可用的集群, 机器分为:  两种角色 leader+follower  leader负责写入   follower负责分担读的压力 , 一个集群只有一个leader, 通过选举算法来实现, 必须确保机器个数为 2n+1 集群中的所有机器都参与选举,  票数最多的机器 为leader,  leader写入的数据通过Paxos算法 , 将所有数据同步.


zookeeper是一个使用树形结构存储的数据库  树结构包含多个znode  每个节点都可以有一个值和多个子节点



zookeeper有三种znode : 

  1. 永久节点 (PERSISTENT):  数据被持久化  用户不调用删除  不会删除  (默认的节点)

  2. 临时节点 (EPHEMERAL): 客户端连接时 才保留数据  客户端断开 数据被删除   

创建:create -e /user/zs boy 

  3.顺序节点(PERSISTENT_SEQUENTIAL):  1-500000  (抢票+分布式主键)

创建:create -s /user/ ls girl



一. 首先 在  http://mirror.bit.edu.cn/apache/zookeeper/ 下载 安装 zookeeper程序

下载完之后解压即可



二.解压打开 文件  有一个bin目录 bin目录下就是  服务端和客户端的启动程序


zkServer.cmd 是启动服务端    zkCli.cmd是启动客户端    刚解压完是打不开的  我们需要修改 一个文件

1. 进入conf目录   我们需要将zoo_sample.cfg 文件修改为zoo.cfg  才可行 (修改过的如下:) 修改过可以正常启动服务端和客户端了


2.还需要重新配置zoo.cfg中的配置:

# 心跳的时间间隔
tickTime=2000
# 初始化同步数据话费的时间 10个tickTime
initLimit=10
# leader和follwer之间互相发送心跳  检查对方 失效的时间间隔 5*tickTime
syncLimit=5
# 数据文件的存储目录
dataDir=E:\yun computing\zookeeper\zookeeper-3.4.10\zookeeper-3.4.10\data
# 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
#
# 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

zoo.cfg中配置的详细信息:

参数

说明

tickTime

ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。默认3000毫秒。这个单元时间不能设置过大或过小,过大会加大超时时间,也就加大了集群检测session失效时间;设置过小会导致session很容易超时,并且会导致网络通讯负载较重(心跳时间缩短)

initLimit

Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许FollowerinitLimit时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,Follower在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。默认值为10,即10 * tickTime  (No Java system property)

syncLimit

在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果Leader发出心跳包在syncLimit之后,还没有从Follower那里收到响应,那么就认为这个Follower已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题,设置大小依赖与网络延迟和吞吐情况。默认为5,即5 * tickTime (No Java system   property)

dataDir

就是把内存中的数据存储成快照文件snapshot的目录,同时myid也存储在这个目录下(myid中的内容为本机server服务的标识)。写快照不需要单独的磁盘,而且是使用后台线程进行异步写数据到磁盘,因此不会对内存数据有影响。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir,事务日志的写性能直接影响zk性能。

dataLogDir

日志文件存放目录

clientPort

客户端连接server的端口,即zk对外服务端口,一般设置为2181




三. 点击打开 zkServer.cmd 服务端  然后 打开zkCli.cmd客户端  在客户端上就可以进行正常的命令操作了

 常用的数据操作命令(树结构节点数据的操作)

ls / 显示根节点下所有的节点

  [zk: localhost(CONNECTED) 1] ls /
[zookeeper]

create 在/ 下 新增一个sex节点 节点的值是 boy
[zk: localhost(CONNECTED) 2] create /sex boy
Created /sex
[zk: localhost(CONNECTED) 3] ls /
[sex, zookeeper]
获取/sex节点的值
[zk: localhost(CONNECTED) 5] get /sex
boy
cZxid = 0x2
ctime = Thu May 11 17:32:27 CST 2017
mZxid = 0x2
mtime = Thu May 11 17:32:27 CST 2017
pZxid = 0x2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

重新设置sex节点的值
[zk: localhost(CONNECTED) 6] set /sex girl
cZxid = 0x2
ctime = Thu May 11 17:32:27 CST 2017
mZxid = 0x3
mtime = Thu May 11 17:33:16 CST 2017
pZxid = 0x2
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: localhost(CONNECTED) 7] get /sex
girl
cZxid = 0x2
ctime = Thu May 11 17:32:27 CST 2017
mZxid = 0x3
mtime = Thu May 11 17:33:16 CST 2017
pZxid = 0x2
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0

删除节点
[zk: localhost(CONNECTED) 8] delete /sex
[zk: localhost(CONNECTED) 9] ls /
[zookeeper]
[zk: localhost(CONNECTED) 10]

其他

 help 查看所有命令的帮助

 close/quit 退出登录

 connect ip:port 重新登录

 histroy 查看操作历史记录  每个历史记录都有一个编号

 redo 编号  重新执行history中编号对应的语句

 close 关闭客户端连接

 stat /sex 查看znode的/sex的状态信息 

  ls2 /sex 查看/sex所有的子节点 同时查看状态信息

  rmr /sex 删除/sex以及他的所有子节点

  setquota -n 1 /test  给/test节点设置允许的子节点个数是1个 添加子节点操作1个 给予警告 可以添加

                  -b 10 /test 给/test的值的长度限制为 10个字节 

  listquota /test 列出/test所有的配额

  delquota -n /test 删除子节点设置的额配合


【通过命令 添加node后  可以查看到一些列 这些列的意义 】

     cZxid = 0x2                                                     节点被创建时的事务id
    ctime = Thu May 11 17:32:27 CST 2017   节点被创建的时间
    mZxid = 0x3                                                    节点最后一次被更新(使用set 修改当前节点时 (修改子节点不影响该字段) 该值会自动更新 自动累加)时的事务id
    mtime = Thu May 11 17:33:16 CST 2017  节点最后一次被更新时间
    pZxid = 0x2                                子节点中最后一个被创建的子节点的czxid 如果当前节点没有子节点pZxid=cZxid
    cversion = 0                                                    子节点被创建或者删除 都会导致该版本号递增       修改不会                                  
    dataVersion = 1                                              当前节点调用set 修改值  都会导致该版本号递增    (子节点修改不影响该版本号)                           
   aclVersion = 0   
   ephemeralOwner = 0x0  如果是持久节点就是0  临时节点是sessionid 客户端连接会产生session
   dataLength = 4       数据长度 多少个字节 
   numChildren = 0    表示子节点的个数



在Eclipse中安装zookeeper插件

1:首先找到eclipse中的help下的install new software..

2:点击add添加name与url,name可以为zookeeper,而location则是固定的

:http://www.massedynamic.org/eclipse/updates/,点击ok


3.选择 Plug-in for ZooKeeper 3.2.2  这个选项

4. 开始安装

5:出现security warning时选择第一个选项

6:出现software updates 选择重启,

7:重启后就可使用。

8:在window中找到show view ,搜索zookeeper,出现以下视图即为安装成功。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值