zooKeeper简介:略。
知识要点:
1、源代码开放 --- 可以免费的获取和使用研究源代码
2、分布式协调服务,它解决分布式数据一致性的问题
A:顺序一致性 --- 从一个客户端发起一个事务请求。最终严格按照发起的顺序,被应用的zooKeeper去。
B:原子性 ---- 所有事物请求的处理结果,在所有机器上是一样的。
C:单一视图 --- 无论客户端连接哪个zooKeeper服务器,看到的视图是一样的。
D:可靠性 --- 一旦服务器完成了事务,并完成了客户端的响应。引起的服务状态变更,会保留下来。
E:实时性 --- zooKeeper保证在一定时间内,客户端一定会从服务端读取到数据状态。
3、高性能
4、调用zooKeeper提供的接口来解决一些分布式应用的实际问题
典型的应用场景:
1、数据发布/订阅
2、负载均衡
3、命名服务
4、分布式协调/通知
ZooKeeper基本概念:
集群角色:
会话:
数据节点:
版本:
watcher
ACL权限控制:对节点授权,保障zk集群节点的安全。
现在,安装zk。集群,三个节点。开了三个虚拟机,其中一个master,两个slave。
安装zooKeeper主要是配置文件。上传,解压。
在zooKeeper安装目录下的conf目录中,将 zoo_sample.cfg 改为 zoo.cfg
配置文件详解:
#zookeeper的快照文件位置(自行定义)
dataDir =
#zookeeper的端口(每台服务都可以配置自己可用的端口)
ClientPrort = 2181
ZK的配置模板
server.id=host:port:port
id : 表示服务的id(自定义)
host : 表示地址。
port : 端口如(2888)
port : 端口如(3888)
在zoo.cfg 的末尾,增加如下:
hadoop11,hadoop12,hadoop13.已经在/etc/hosts 中配置了。
分别对应:虚拟机ip
zk集群只要有一半的机器启动,就可以启动。
这三台机器两个
是follower
[root@hadoop12 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by defaultUsing config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@hadoop12 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: follower
一个是 leader
[root@hadoop13 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by defaultUsing config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@hadoop13 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/app/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: leader