操作系统为centos,jdk版本为1.6,zookeeper版本为3.4.6
按照zookeeper的选举算法,zookeeper的服务器数量最好为奇数,本文三台机器为例
ip | 域名 |
192.168.205.207 | data-test-207 |
192.168.205.208 | data-test-208 |
192.168.205.210 | data-test-210 |
/etc/init.d/iptables stop
用途 | 目录 |
zookeeper符号链接 |
/opt/modules/zookeeper |
数据目录 | /data1/zookeeper/data |
日志目录 | /data1/zookeeper/logs |
cd /opt/modules wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gztar zxf zookeeper-3.4.6.tar.gz ln -s zookeeper-3.4.6 zookeeper
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
在start中修改:
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 &
将本机zookeeper scp至其他两台服务器
scp -r /opt/modules/zookeeper-3.4.6 root@data-test-208 scp -r /opt/modules/zookeeper-3.4.6 root@data-test-210
并在该两台服务器上执行
ln -s /opt/modules/zookeeper-3.4.6 /opt/modules/zookeeper
在三台服务器上执行
echo "1" > /data1/zookeeper/data/myid
注意:写入的数字与zoo.cfg中server.x中的x对应
分别在三台服务器上执行
/opt/modules/zookeeper/bin/zkServer.sh start
可以观察日志
tail -f /data1/zookeeper/logs/zookeeper.log
可以查看各个服务的状态
/opt/modules/zookeeper/bin/zkServer.sh status