好程序员大数据学习路线之zookeeper干货,上周学习了zookeeper,一开始感觉不容易理解,后来随着学习的深入,渐渐地明白了很多知识,下面慢慢来介绍zookeeper。
zookeeper是什么???
zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务的。
zookeeper是为其他的分布式程序提供服务的
zookeeper本身就是一个分布式程序(只要半数以上节点存活,就能提供服务)
zookeeper的特性:
zookeeper:一个leader,多个follower
全局数据一致性:每个server都保存一份相同的数据,client无论连接那台服务器,都可以得到相同的数据
分布式读写,更新请求转发,由leader实施数据更新的写操作
更新请求按顺序执行,来自同一个client的更新请求会按照其发送的顺序来执行
数据更新的原子性,一次数据要么更新成功,要么失败。
实时性,在一定时间范围内,client能读到最新的数据。
应用场景:
统一命名服务;配置管理;集群管理;共享锁;队列管理;
Zookeeper 作为 Hadoop 项目中的一个子项目,是 Hadoop 集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理 Hadoop 集群中的 NameNode,还有 Hbase 中 Master Election、Server 之间状态同步等。
本文介绍的Zookeeper 的基本知识,以及介绍了几个典型的应用场景。这些都是 Zookeeper 的基本功能,最重要的是 Zoopkeeper 提供了一套很好的分布式集群管理的机制,就是它这种基于层次型的目录树的数据结构,并对树中的节点进行有效管理,从而可以设计出多种多样的分布式的数据管 理模型,而不仅仅局限于上面提到的几个常用应用场景。
选举机制:
1.服务器ID:数据ID(编号)越大在选择算法中的权重越大
2.数据ID:服务器中存放的数据最大ID、值越大说明数据越新,在选举算法种数据越新权重越大。
3.逻辑时钟:即投票的次数,同一投票过程中的逻辑时钟都是相同的。每投完一次票这个数据就会加一然后与接收到的其它服务器返回的投票信息中的数值相比,根据不同的值做出不同的判断。
三大功能:
1.为用户提供数据的注册和查询服务
2.为用户提供数据节点的监听注册服务
3.跟用户之间保持心跳通信以感知用户的状态