一.服务器配置
按照zookeeper的选举算法,zookeeper的服务器数量最好为奇数,本文三台机器为例
1.关闭防火墙
1
|
/etc/init
.d
/iptables
stop
|
二.zookeeper配置
1.目录规划
用途 | 目录 |
zookeeper符号链接 | /opt/modules/zookeeper |
数据目录 | /data1/zookeeper/data |
日志目录 | /data1/zookeeper/logs |
2.下载
1
2
3
|
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.修改配置文件及脚本
1
2
3
|
cd
/opt/modules/zookeeper
cp
conf
/zoo_sample
.cfg cong/zoo.cfg
vi
conf
/zoo
.cfg
|
在zoo.cfg中修改或添加如下配置项:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data1/zookeeper/data
clientPort=2181
server.1=192.168.205.207:10888:11888
server.2=192.168.205.208:10888:11888
server.3=192.168.205.210:10888:11888
1
|
vi
conf
/log4j
.properties
|
修改如下配置:
zookeeper.log.dir=/data1/zookeeper/logs
zookeeper.tracelog.dir=/data1/zookeeper/logs
log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
1
|
vi
bin
/zkEnv
.sh
|
添加如下语句:
ZOO_LOG_DIR=/data1/zookeeper/logs
1
|
vi
bin
/zkServer
.sh
|
在start中修改:
1
2
|
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
2
|
scp
-r
/opt/modules/zookeeper-3
.4.6 root@
192.168.205.208: /opt/modules/
scp
-r
/opt/modules/zookeeper-3
.4.6 root@
192.168.205.210: /opt/modules/
|
并在该两台服务器上执行
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
|