ZooKeeper伪分布式集群部署
本文为Zookeeper伪分布式环境的部署,机器环境Wie
- 1、Centos 6.8
- 2、JDK为1.8.0_121
- 3、zookeeper版本为3.4.9
一、zookeeper伪分布式环境准备
- 官网下载zookeeper到/opt/zookeeper/zookeeper-3.4.9.tar.gz
- 执行解压命令
1 tar zxvf zookeeper-3.4.9.tar.gz
- 修改环境变量(非必须)
为了方便命令输入,这里将zookeeper配置到环境变量中
1 vim /etc/profile
在文件的末尾增加以下内容,保存退出
1 export ZOOKEEPER=/opt/zookeeper/zookeeper-3.4.9 2 export PATH=$PATH:$ZOOKEEPER/bin
刷新环境变量
1 source /etc/profile
二、部署伪分布式集群环境
说明,本次部署采用的是三个节点进行部署
在部署之前,先对zookeeper的配置文件进行介绍,zookeeper配置文件位于安装目录下的conf/zoo_sample.cfg
打开该文件如下
1 Zookeeper伪分布式 2 3 4 5 # The number of milliseconds of each tick 6 # tickTime为每个心跳的时间间隔,单位为毫秒 7 tickTime=2000
8 # The number of ticks that the initial 9 # synchronization phase can take 10 #initLimit表示初始化连接时,最多能够忍受多少个心跳的时间间隔。举个例子,当超过10个心跳间隔时,还没有收到返回信息,表示这个客户端连接失败,10个时间间隔就是10*2000=20000毫秒即20秒 11 initLimit=10
12 # The number of ticks that can pass between 13 # sending a request and getting an acknowledgement 14 #syncLimit表示follower和Leader通信时,请求和应答的时间长度,最长不能超过多少个心跳间隔,这里是5*2000=10000即10秒 15 syncLimit=5
16 # the directory where the snapshot is stored. 17 # do not use /tmp for storage, /tmp here is just 18 # example sakes. 19 #dataDir快照的存放目录,这里配置为tmp仅仅是示例,不要使用/tmp目录 20 dataDir=/tmp/zookeeper
21 # the port at which the clients will connect 22 #clientPort表示开放为客户端连接进入的端口 23 clientPort=2181
24 # the maximum number of client connections. 25 # increase this if you need to handle more clients 26 #maxClientCnxns表示客户端可连接进入的最大连接数 27 #maxClientCnxns=60 28 29 # 30 # Be sure to read the maintenance section of the 31 # administrator guide before turning on autopurge. 32 # 33 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance 34 # 35 # The number of snapshots to retain in dataDir 36 #在zookeeper3.4.0以后提供了自动清理快照的功能,该配置表示保留快照的文件数目,默认是3个 37 #autopurge.snapRetainCount=3
38 # Purge task interval in hours 39 # Set to "0" to disable auto purge feature 40 #自动清理的时间间隔,即清理的频率。单位为小时,设置为0表示不自动清理, 41 #autopurge.purgeInterval=1 42 43 44 45 46 ############################################# 47 #zookeeper其它配置介绍 48 1、dataLogDir:在默认的的配置文件示例中没有提供dataLogDir,如果没有提供的话,则使用的dataDir。zookeeper的持久化都存在dataDir和dataLogDir这两个目录下。由于dataLogDir里面存放的是顺序日志(WAL:Write-Ahead Logging预写日志系统,数据库中一种高效的日志算法,对于非内存数据库而言,磁盘I/O操作是数据库效率的一大瓶颈。在相同的数据量下,采用WAL日志的数据库系统在事务提交时,磁盘写操作只有传统的回滚日志的一半左右,大大提高了数据库磁盘I/O操作的效率,从而提高了数据库的性能),而dataDir里面存放的是内存数据结构的snapshot,便于恢复。所以一般的情况下是建议个这两个分到不同磁盘上,以便从发利用磁盘书序写的特性,以达到性能的最大化。 49 2、集群中的服务列表配置 50 server.A=B:C:D 51 A:表示集群中服务器的序号,需要唯一 52 B:表示服务器的IP 53 C:和集群中Leader交换数据的端口 54 D:进行Leader选举的端口 55 举例子 56 server.1=192.168.135.11:8881:8891 57 server.2=192.168.135.12:8881:8891 58 server.3=192.168.135.13:8881:8891 59 在这个集群中有三个服务器 60 序号分别为1、2、3; 61 IP分别为192.168.135.11,192.168.135.12,192.168.135.13, 62 和Leader通讯的端口均为8881,当然这里的通讯端口也可以不一样 63 进行Leader选举的端口均为8891,这里的选举端口也可以不一样 64