zookeeper 集群安装和配置

dd2d 10年前

zookeeper 集群安装和配置


先主要介绍一下zoo.cfg的基本配置。

tickTime=2000  initLimit=10  syncLimit=5  dataDir=/data  dataLogDir=/datalog  clientPort=2181  electionAlg=3  server.1=127.0.0.1:20881:30881  server.2=127.0.0.1:20882:30882  server.3=127.0.0.1:20883:30883

配置的基本信息

tickTime=2000:毫秒级的基本时间单位,其他时间如心跳/超时等都为该单位时间的整数倍;

initLimit=10:tickTime的倍数,表示leader选举结束后,followers与leader同步需要的时间,leader的数据非常多时或followers比较多,则该值应该适当大一些;

syncLimit=5:tickTime的倍数,表示follower和observer与leader交互时的最大等待时间,只不过是在与leader同步完毕之后,正常请求转发或ping等消息交互时的超时时间。

clientPort=2181:监听客户端连接的服务端口

electionAlg=3:领导选举算法,默认3。(No Java system property)

dataDir=/data:内存数据库快照地址,事务日志地址(除非由 dataLogDir 另行指定)

dataLogDir=/datalog:事务日志目录,可以使用专用的设备,以避免事务日志与快照之间的竞争。

server.x=[hostname]:nnnnn[:nnnnn], etc

集群配置中,在dataDir目录下必须有一个myid文件,其中的值就是数字x,范围是1-255。第一个nnnnn是与leader通讯使用,第二个nnnnn是选举leader使用,electionAlg等于0时不需要此参数。(No Java system property)


在一台机器上开启zookeeper的三个实例,其实就是一个伪集群。集群中的三个配置为:

zookeeper实例一:

tickTime=2000  initLimit=10  syncLimit=5  dataDir=/zookeeper-3.4.6-1/data  dataLogDir=/zookeeper-3.4.6-1/datalog  clientPort=2181  electionAlg=3  server.1=127.0.0.1:20881:30881  server.2=127.0.0.1:20882:30882  server.3=127.0.0.1:20883:30883

zookeeper实例二:

tickTime=2000  initLimit=10  syncLimit=5  dataDir=/zookeeper-3.4.6-2/data  dataLogDir=/zookeeper-3.4.6-2/datalog  clientPort=2182  electionAlg=3  server.1=127.0.0.1:20881:30881  server.2=127.0.0.1:20882:30882  server.3=127.0.0.1:20883:30883

zookeeper实例三:

tickTime=2000  initLimit=10  syncLimit=5  dataDir=/zookeeper-3.4.6-3/data  dataLogDir=/zookeeper-3.4.6-3/datalog  clientPort=2183  electionAlg=3  server.1=127.0.0.1:20881:30881  server.2=127.0.0.1:20882:30882  server.3=127.0.0.1:20883:30883

其中,

dataDir=/zookeeper-3.4.6-1/data  dataLogDir=/zookeeper-3.4.6-1/datalog

该目录为其实例所在的目录下。

最后别忘了在dataDir配置的目录下建立myid文件。好了,集群基本就配置完了。


最后启动每个zookeeper实例。

如下图三个zookeeper实例启动后的状态:

zookeeper 集群安装和配置

zookeeper 集群安装和配置

zookeeper 集群安装和配置


打开任何一个客户端,建立znode,如下,

[zk: localhost:2181(CONNECTED) 3] create /zk_test mydata  Created /zk_test  [zk: localhost:2181(CONNECTED) 4] get /zk_test  mydata  cZxid = 0x600000004  ctime = Mon Mar 16 17:51:58 CST 2015  mZxid = 0x600000004  mtime = Mon Mar 16 17:51:58 CST 2015  pZxid = 0x600000004  cversion = 0  dataVersion = 0  aclVersion = 0  ephemeralOwner = 0x0  dataLength = 6  numChildren = 0  [zk: localhost:2181(CONNECTED) 5]


打开另一个客户端,如下,

[zk: localhost:2181(CONNECTED) 1] get /zk_test  mydata  cZxid = 0x600000004  ctime = Mon Mar 16 17:51:58 CST 2015  mZxid = 0x600000004  mtime = Mon Mar 16 17:51:58 CST 2015  pZxid = 0x600000004  cversion = 0  dataVersion = 0  aclVersion = 0  ephemeralOwner = 0x0  dataLength = 6  numChildren = 0  [zk: localhost:2181(CONNECTED) 2] ls /  [mynode, zookeeper, zk_test]  [zk: localhost:2181(CONNECTED) 3]

一个集群就搭建好了。

参考:http://ibruce.info/2014/10/23/zookeeper/

http://greemranqq.iteye.com/blog/2171449

http://www.cnblogs.com/yuyijq/p/3438829.html


==================================END==================================