Zookeeper
ZooKeeper
是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。zookeepepr
是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调存储服务。
应用场景
- 维护配置信息:上千台服务器的配置信息维护,来保证配置信息的一致性。
- 分布式锁:多台服务器运行同一个任务时,高并发和可靠性需要通过分布式锁来保证。
- 集群管理:将服务器集群的信息通知给客户端,告知服务器情况
- 生成唯一分布式ID:数据库分库分表后
auto_increment
属性的增长需要在服务器之间同步。
特点
- 一个领导者
leader
多个follower
组成 - 集群中半数以上服务器正常工作,那么整个集群正常工作
- 严格访问顺序,对来自客户端的请求,
zookeeper
分配全局唯一递增编号,标志事物的执行顺序 - 所有的
server
都会保存一份数据,无论连接到那个server
数据都是一致的
数据结构
类似Unix文件系统,整体看做树结构,每个节点是一个ZNode
默认存储大小1MB
每个ZNode
都可以通过唯一路径表示。
安装
安装在集群中hadoop102服务器上,上传到/opt/software/
解压到/opt/module/
tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module/
创建zkData文件夹存放文件
[root@hadoop102 zookeeper-3.4.14]# mkdir zkData
修改conf中的zoo-sample.cfg文件 为 zoo.cfg
[root@hadoop102 conf]# mv zoo_sample.cfg zoo.cfg
在zoo.cfg中修改数据地址
vi zoo.cfg
dataDir=/opt/module/zookeeper-3.4.10/zkData
启动
启动服务器,start
开启stop
结束
bin/zkServer.sh start
查看状态standalone
单机状态
启动客户端,操作服务器,不加start也可以,quit
退出
bin/zkCli.sh start