②话不说▼ 2012▼ 手册 集群 zookeeper

003.Zookeeper集群

Zookeeper Release 3.3.5(stable), 考虑宕机测试,最小多台奇数集群,3台刚合适。

@史荣久 / 2012-06-04 / CC-BY-SA-3.0

1. 依赖文档

制作虚拟机(virtualbox 4.1.2)
zookeeper 集群安装(单点与分布式成功安装)摘录

2. 单机测试

当前最新稳定版,Release 3.3.5(stable)

http://zookeeper.apache.org/doc/r3.3.5/zookeeperStarted.html
http://zookeeper.apache.org/doc/current/zookeeperAdmin.html

入门文档比较简单。单机模式,3步即可。

cp conf/zoo_sample.cfg conf/zoo.cfg
mkdir -p /tmp/zookeeper
bin/zkServer.sh start

3. 三机集群

考虑宕机测试,最小多台奇数集群3台刚合适。
虚拟机环境,参考 制作虚拟机 手册

初始化虚拟机

scp jdk-6u30-linux-i586.bin root@vbox01:/root/
scp zookeeper-3.3.5.tar.gz  root@vbox01:/root/

#root@vbox01
cd /usr/local/
chmod +x ~/jdk-6u30-linux-i586.bin
~/jdk-6u30-linux-i586.bin
tar -xzf ~/zookeeper-3.3.5.tar.gz 

cat>/etc/profile.d/jdk1.6.0_30.sh<<EOF
export JAVA_HOME=/usr/local/jdk1.6.0_30
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

cat>/etc/profile.d/zookeeper-3.3.5.sh<<EOF
export PATH=\$PATH:/usr/local/zookeeper-3.3.5/bin
export ZOO_LOG_DIR=/var/zookeeper
EOF

cat>/usr/local/zookeeper-3.3.5/conf/zoo.cfg<<EOF
tickTime=2000
dataDir=/var/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=vbox01:2888:3888
server.2=vbox02:2888:3888
server.3=vbox03:2888:3888
EOF

mkdir /var/zookeeper

# 1表示 server.1 对应 vbox01,依次类推。
echo 1 > /var/zookeeper/myid 

对vbox02和vbox03重复以上步骤。
唯有最后一步的需要根据主机变更数值。
vbox02数值是2,vbox03是3

4. 注意问题

启动查看和停止,使用以下脚本即可.
zkServer.sh start | status | stop
也可以ps或netstat查看进程或端口.

Cannot open channel to 2 at election address
正常现象为其他zookeeper还未启动完毕,待全部完毕后,自然消失。

java.net.NoRouteToHostException: No route to host
关闭防火墙,或设置规则
chkconfig iptables off
service iptables stop

在zoo.cfg中设置dataLogDir不能把log制定目录,
仍然是输入命令的位置(.)
需要制定ZOO_LOG_DIR环境变量。

《003.Zookeeper集群》 Zookeeper Release 3.3.5(stable),考虑宕机测试,最小多台奇数集群,3台刚合适。
题图:爱下雨,爱蹦水坑。穿上雨衣,雨靴,一趟一趟,一蹦一蹦。