Zookeeper
来源:互联网 发布:双拇指扫矿软件 编辑:程序博客网 时间:2024/06/07 21:06
为什么使用Zookeeper?
Zookeeper的特性
dataDir=/usr/local/zk/data
只运行在一台服务器上,适合测试环境;Zookeeper的启动脚本在bin 目录下;在启动脚本之前,还有几个基本的配置项需要配置一下,tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳;dataDir:顾名思义就是Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里;clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。当这些配置项配置好后,就可以启动Zookeeper 了,启动后使用命令echoruok | nclocalhost 2181检查Zookeeper是否已经在服务
1.ZooKeeper
1.1 zk可以用来保证数据在zk集群之间的数据的事务性一致。
2.如何搭建ZooKeeper服务器集群
2.1 zk服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致。
2.2 在hadoop0的/usr/local目录下,解压缩zk....tar.gz,设置环境变量
2.3 在conf目录下,修改文件 vi zoo_sample.cfg zoo.cfg
2.4 编辑该文件,执行vi zoo.cfg
修改dataDir=/usr/local/zk/data
新增server.0=hadoop0:2888:3888
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
2.5 创建文件夹mkdir /usr/local/zk/data
2.6 在data目录下,创建文件myid,值为0
2.7 把zk目录复制到hadoop1和hadoop2中
2.8 把hadoop1中相应的myid的值改为1
把hadoop2中相应的myid的值改为2
2.9 启动,在三个节点上分别执行命令zkServer.sh start
2.10 检验,在三个节点上分别执行命令zkServer.sh status
Zookeeper 不仅可以单机提供服务,同时也支持多机组成集群来提供服务 , 实际上Zookeeper还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个Zookeeper 实例;nitLimit:这个配置项是用来配置Zookeeper 接受客户端(这里所说的客户端不是用户连接Zookeeper 服务器的客户端,而是Zookeeper 服务器集群中连接到Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10 个心跳的时间(也就是 tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10秒;syncLimit:这个配置项标识Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是2*2000=4 秒;server.A=B:C:D:其中A 是一个数字,表示这个是第几号服务器;B是这个服务器的ip地址;C表示的是这个服务器与集群中的 Leader服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。除了修改zoo.cfg 配置文件,集群模式下还要配置一个文件myid,这个文件在dataDir目录下,这个文件里面就有一个数据就是A 的值,Zookeeper启动时会读取这个文件,拿到里面的数据与 zoo.cfg里面的配置信息比较从而判断到底是那个server。分别在3台机器上启动ZooKeeper的Server:shbin/zkServer.sh start;运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)。Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续。为什么一定要超过半数呢?这跟Zookeeper的复制策略有关:zookeeper确保对znode树的每一个修改都会被复制到集合体中超过半数的机器上。
Zookeeper的数据模型
Zookeeper的角色
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- ZooKeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- ZooKeeper
- zookeeper
- zookeeper
- Zookeeper
- concorrent、多线程、线程池
- linux守护进程小例 与syslog
- BZOJ 1023: [SHOI2008]cactus仙人掌图
- How to correctly set application badge value in iOS 8?
- MediaXtreme
- Zookeeper
- 从各大高校到12306网站看SSL问题
- 2014互联网找工作总结(网络)
- 以后开始写点python技术文章
- FPGA基础之逻辑单元(LE or LC)的基本结构
- 函数模板
- 头插法倒置单链表
- C语言循环创造文件
- SPRING面试知识点