一步到位分布式开发一步到位分布式开发Zookeeper实现集群管理实现集群管理
Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服
务、集群管理、分布式应用配置项的管理等等。
Zookeeper 的核心是广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。
Zab协议有两种模式,它们分别是恢复模式(选主)和广播 模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢
复模式,当领导者被选举出来,且大多数Server完成了和leader的状态同步以后, 恢复模式就结束了。
状态同步保证了leader和Server具有相同的系统状态。为了保证事务的顺序一致性,zookeeper采用了递增的事务id号
(zxid)来标识事务。
所有的提议(proposal)都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它高32位是epoch用 来标识leader关
系是否改变,每次一个leader被选出来,它都会有一个新的epoch,标识当前属于那个leader的统治时期。低32位用于递 增计
数。
每个Server在工作过程中有三种状态:
LOOKING:当前Server不知道leader是谁,正在搜寻。
LEADING:当前Server即为选举出来的leader。
FOLLOWING:leader已经选举出来,当前Server与之同步。
ZooKeeper的安装模式分为三种,分别为:单机模式、集群模式和集群伪分布模式
环境
CentOS7.0 (windows中使用就使用zkServer.cmd)
ZooKeeper最新版本
用root用户安装(如果用于hbase时将所有文件权限改为hadoop用户)
Java环境,最好是最新版本的。
分布式时多机间要确保能正常通讯,关闭防火墙或让涉及到的端口通过。
下载
去官网下载 :http://zookeeper.apache.org /releases.html#download
下载后放进CentOS中的/usr/local/ 文件夹中,并解压到当前文件中 /usr/local/zookeeper(怎么解压可参考之前的Haproxy的安
装文章)
安装
单机模式
进入zookeeper目录下的conf子目录, 重命名 zoo_sample.cfg文件,Zookeeper 在启动时会找这个文件作为默认配置文件: