ZooKeeper集群部署流程

96
dzgdp888
2015.12.27 02:15* 字数 607
系统版本: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;不建议使用
Storm
Web note ad 1