系统版本:CentOS 6.5
软件版本:ZooKeeper:3.4.7
硬件要求:至少3台Server,要求有网卡、内存大
1. 配置hosts,测试节点连通性
终端
输入
vim /etc/hosts
依次配置每台Server的hosts文件,例如:
192.168.1.100 host1
192.168.1.101 host2
192.168.1.102 host3
配置后要检查每台Server是否和其它Server都保持连通。如在host1要依次测试:
ping host2
ping host3
确保所有Server连通后继续下一步操作。
2. 解压安装包zookerper-3.4.7.tar.gz
tar -xzvf zookerper-3.4.7.tar.gz
3. 创建项目目录并将解压目录移入项目目录中的Zookeeper子目录
新建zookeeper目录,将解压后的zookerper-3.4.7文件夹放到zookeeper目录下
4. 修改Zookeeper配置文件zoo.cfg
- 进入zookerper-3.4.7目录,执行
ls conf/
/*
输出:configuration.xsl log4j.properties zoo_sample.cfg.其中zoo_sample.cfg文件即为配置文件
*/
cp conf/zoo_sample.cfg conf/zoo.cfg
vim conf/zoo.cfg
- 配置文件如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/host1/zookeeper/zkdata
dataLogDir=/home/host1/zookeeper/logs
clientPort=2181
server.1=host1:2888:3888
server.2=host2:2888:3888
server.3=host3:2888:3888
修改完成后拷贝配置内容,依次复制到其他Server下
- 创建目录
mkdir /home/host1/zookeeper/zkdata
mkdir /home/host1/zookeeper/logs
5. 建立Zookeeper节点标识文件myid
创建myid编号,依次在每台Server上执行,注意每台Server的myid要对应正确的编号
host1
下输入
echo "1" > /home/host1/zookeeper/zkdata/myid
host2
下输入
echo "2" > /home/host2/zookeeper/zkdata/myid
host3
下输入
echo "3" > /home/host3/zookeeper/zkdata/myid
6. 配置环境变量并使环境变量立即生效
vim /etc/profile
在末尾加入以下命令(只有root用户才可以改哦)
export ZOOKEEPER_HOME=/home/host1/zookeeper/zookeeper-3.4.7
export PATH=$ZOOKEEPER_HOME/bin:$PATH
完成后保存退出,并使环境变量立即生效
source /etc/profile
同样,在其它Server也要做同样的操作。
7. 启动Zookeeper并且进行状态监控
启动ZooKeeper
zkServer.sh start
检查ZooKeeper的状态
zkServer.sh status
这里需要注意下,各台Server的防火墙要关闭
,要不可能会报错。关闭防火墙方法:
service iptables stop
执行后查询是否关闭
service iptables status
ZooKeeper常见配置
- tickTime:CS通信心跳数;以
毫秒
为单位,可以使用默认配置。 - initLimit:LF初始通信时限;
- syncLimit:LF同步通信时限;数值不宜过高。
- dataDir:数据文件目录;
- dataLogDir:日志文件目录;
- clientPort:客户端连接端口;
- server.N:服务器名称与地址(服务编号,服务地址,LF通信端口,选举端口)
ZooKeeper高级配置
- gloabalOutstandingLimit:最大请求堆积属,默认1000;
- preAllocSize:预分配的Transaction log空间大小;
- snapCount:每进行snapCount次事务日志输出后,触发一次快照;
- maxClientCnxns:最大并发客户端数;
- forceSync:是否提交事务的同时同步到磁盘;
- leaderServes:是否禁止leader读功能;
- traceFile:是否记录所有请求的log;
不建议使用