zookeeper概述
zookeeper是什么
1. zookeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chuby的一个开源实现。是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。
2.提供了基于类似Unix系统的目录节点树方式的数据存储。
3.可用于维护和监控存储的数据的状态的变化,通过监控这些教据状态的变化,从而达到基于数据的集群管理
4.提供了一组原语(机器指令),提供了java和c语言的接口
zookeeper的特点
1.也是一个分布式集群,一个领导者(leader),多个跟随者(follower).
2.集群中要有半数以上的节点存活,Zookeeper集群就能正常服务。
3.全局数据一致性:每个server保存一份相同的数据副本,client无论连接到哪个server ,数据都是一致的。
4.更新请求按顺序进行:来自同一个client的更新请求按其发送顺序依次执行
5.数据更新的原子性:一次数据的更新要么成功,要么失败
6.数据的实时性:在一定时间范围内,client能读到最新数据。

zookeeper的数据模型
Zookeeper的数据模型采用的与Unik文件系统类似的层次化的树形结构。我们可以将其理解为一个具有高可用特征的文件系统。这个文件系统中没有文件和目录,而是统一使用"节点"(node)的概念,称之为znode 。znode既可以作为保存数据的容器(如同文件)也可以作为保存其他znode的容器(如同目录)。所有的znode构成了一个层次化的命名空间。

- Zookeeper被设计用来实现协调服务(这类服务通常使用小数据文件),而不是用于大容量数据存储,
- 因此一个znode能存储的数据被限制在1MB以内.
- 每个znode都可以通过其路径唯一标识。
zookeeper的应用场景
1.统一配置管理
2.统一集群管理
3.服务器节点动态上下线感知
4.软负载均衡等
5.分布式锁
6.分布式队列
Zookeeper安装
[root@tianqinglong01 softwares]# tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local
[root@tianqinglong01 softwares]# cd /usr/local
[root@tianqinglong01 local]# mv zookeeper-3.4.10/ zookeeper
[root@tianqinglong01 local]# vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
:wq
[root@tianqinglong01 local]# source /etc/profile
[root@tianqinglong01 local]# cd /zookeeper
[root@tianqinglong01 zookeeper]# cd conf
[root@tianqinglong01 conf]# cp zoo_sample.cfg zoo.cfg
[root@tianqinglong01 conf]# vim zoo.cfg
dataDir=/usr/local/zookeeper/zkData #修改zookeeper的存储路径,zkData目录一会要创建出来
clientPort=2181 #客户端连接服务器的port
server.1=tianqinglong01:2888:3888
server.3=tianqinglong02:2888:3888
server.3=tianqinglong03:2888:3888
:wq
[root@tianqinglong01 conf]# cd ..
[root@tianqinglong01 zookeeper]# mkdir zkData
[root@tianqinglong01 zookeeper]# cd zkData
[root@tianqinglong01 zkData]# echo 1 >> myid
[root@tianqinglong01 zkData]# cd ../..
[root@tianqinglong01 local]# scp -r zookeeper/ root@tianqinglong02:$PWD
[root@tianqinglong01 local]# scp -r zookeeper/ root@tianqinglong03:$PWD
[root@tianqinglong01 local]# scp /etc/profile tianqinglong02:/etc/
[root@tianqinglong01 local]# scp /etc/profile tianqinglong03:/etc/
[root@tianqinglong02 ~]# source /etc/profile
[root@tianqinglong02 ~]# cd /usr/local/zookeeper/
[root@tianqinglong02 zookeeper]# cd zkData
[root@tianqinglong02 zookeeper]# echo 2 > myid # > 覆盖
[root@tianqinglong02 ~]# source /etc/profile
[root@tianqinglong02 ~]# cd /usr/local/zookeeper/
[root@tianqinglong02 zookeeper]# cd zkData
[root@tianqinglong02 zookeeper]# echo 3 > myid # > 覆盖
[root@tianqinglong01 local]# cd /zookeeper/bin
[root@tianqinglong01 bin]# ./zkServer.sh start [stop status]
[root@tianqinglong02 local]# cd /zookeeper/bin
[root@tianqinglong02 bin]# ./zkServer.sh start
[root@tianqinglong03 local]# cd /zookeeper/bin
[root@tianqinglong03 bin]# ./zkServer.sh start
#启动客户端的操作
[root@tianqinglong01 ~]# zkCli.sh
[root@tianqinglong01 ~]# zkCli.sh -server tianqinglong01:2181
zookeeper的shell操作

注意
create -e /test2 “test2”
quit
./zkCli.sh
ls /
发现没有test2了
1431

被折叠的 条评论
为什么被折叠?



