zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
zookeeper集群以奇数做集群,示例是三台服务器。
三台分别定义id文件的内容对应内容。
zookeeper1 zoo1 192.168.100.101 myid1
zookeeper2 zoo2 192.168.100.102 myid2
zookeeper3 zoo3 192.168.100.103 myid3
下载地址: http://mirrors.hust.edu.cn/apache/zookeeper/ 安装配置 ; # tar -xf zookeeper-3.4.9.tar.gz # mv zookeeper-3.4.9/ zookeeper 进入到 zookeeper/conf目录,输入命令 cp zoo_sample.cfg zoo.cfg 进入到 zookeeper目录,新建子目录data和logs, # mkdir -p zookeeper/{data,logs} 分别再进入到zookeeper-3.4.9/data 数据目录,对应创建ZK ID myid 标识分别为 1 2 3 创建文件 touch zookeeper/data/myid
#cat myid 1
zoo.cfg 配置如下:
# cat zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/server/zookeeper/data dataLogDir=/opt/server/zookeeper/logs clientPort=2181 server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
启动:
启动: bin/zkServer.sh start 链接测试: bin/zkCli.sh -server 127.0.0.1:2181
配置解析 :
1.tickTime:Client-Server通信心跳时间 tickTime=2000 // Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。 2.initLimit:Leader-Follower初始通信时限 initLimit=5 // 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。 3.syncLimit:Leader-Follower同步通信时限 syncLimit=2 // 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。 4.dataDir:数据文件目录 dataDir=/zookeeper/data // Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。 5.clientPort:客户端连接端口 clientPort=2181 // 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。 6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)这个配置项的书写格式比较特殊,规则如下: server.N=IP:Port:Port server.1=zookeeper01:2888:3888 server.2=zookeeper02:2888:3888 server.3=zookeeper03:2888:3888