操作系统为centos,jdk版本为1.6,zookeeper版本为3.4.6
一.服务器配置
按照zookeeper的选举算法,zookeeper的服务器数量最好为奇数,本文三台机器为例。1.添加host
IP | 域名 |
192.168.205.207 | data-test-207 |
192.168.205.208 | data-test-208 |
192.168.205.210 | data-test-210 |
2.关闭防火墙
/etc/init.d/iptables stop
二.zookeeper配置
1.目录规划
用途 | 目录 |
zookeeper符号链接 | /opt/modules/zookeeper |
数据目录 | /data1/zookeeper/data |
日志目录 | /data1/zookeeper/logs |
2.下载
cd /opt/modules
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxf zookeeper-3.4.6.tar.gz
ln -s zookeeper-3.4.6 zookeeper
3.修改配置文件及脚本
cd /opt/modules/zookeeper
cp conf/zoo_sample.cfg zoo.cfg
vi conf/zoo.cfg
在zoo.cfg中修改或添加如下配置项:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data1/zookeeper/data
clientPort=2181
server.1=data-test-207:10888:11888
server.2=data-test-208:10888:11888
server.3=data-test-210:10888:11888
vi conf/log4j.properties
修改如下配置:
zookeeper.log.dir=/data1/zookeeper/logs
zookeeper.tracelog.dir=/data1/zookeeper/logs
log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
vi bin/zkEnv.sh
添加如下语句:
ZOO_LOG_DIR=/data1/zookeeper/logs
vi bin/zkServer.sh
nohup nice -n 0 "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > /dev/null 2>&1 &
4.分发
将本机zookeeper scp至其他两台服务器
1 | scp -r /opt/modules/zookeeper-3.4.6 root@data- test -208 |
2 | scp -r /opt/modules/zookeeper-3.4.6 root@data- test -210 |
并在该两台服务器上执行
1 | ln -s /opt/modules/zookeeper-3.4.6 /opt/modules/zookeeper |
5.创建myid
在三台服务器上执行
1 | echo "1" > /data1/zookeeper/data/myid |
注意:写入的数字与zoo.cfg中server.x中的x对应
三.启动及测试
分别在三台服务器上执行
1 | /opt/modules/zookeeper/bin/zkServer.sh start |
可以观察日志
1 | tail -f /data1/zookeeper/logs/zookeeper.log |
可以查看各个服务的状态
1 | /opt/modules/zookeeper/bin/zkServer.sh status |