muri 发表于 2015-9-6 13:01:32

Zookeeper 分布式环境搭建

一、前期环境


[*]安装概览




IP
Host Name   
Software   


192.168.23.128   
ae01
JDK 1.7


192.168.23.129
ae02
JDK 1.7


192.168.23.130
ae03
JDK 1.7



若使用虚拟机安装,可以安装samba, smbfs方便对于文件的控制。


[*]系统环境: ubuntu-12.04.2-server-amd64
[*]安装目录: /usr/local/ae
[*]JDK 安装目录: export JAVA_HOME=/usr/local/ae/jdk1.7.0_51
[*]Zookeeper版本: zookeeper-3.4.5

二、Zookeeper 安装


[*]修改host文件,添加3台服务器的hostname, 以ae01 为例。


user@ae01:/usr/local/ae$ sudo vim /etc/hosts


127.0.0.1         localhost
192.168.23.128    ae01
192.168.23.129    ae02
192.168.23.129    ae03
[*]解压zookeeper-3.4.5.tar.gz 到/usr/local/ae 目录



user@ae01:/usr/local/ae$ sudo tar -zxvf zookeeper-3.4.5.tar.gz
[*]复制$ZOOKEEPER_HOME/conf/zoo_sample.cfg 为zoo.cfg 并修改


user@ae01:/usr/local/ae/zookeeper-3.4.5/conf$ sudo vm zoo_sample.cfg zoo.cfg
[*]修改zoo.cfg



# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/ae/storage/zookeeper
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=ae01:2888:3888
server.2=ae02:2888:3888
server.3=ae03:2888:3888
dataDir 为Zookeeper保存数据的文件夹
server.1=ae01:2888:3888 '2888'为连接所使用的端口号,'3888'为选举leader使用的端口号
[*]复制zookeeper-3.4.5 到ae02,ae03


user@ae01:/usr/local/ae$ scp -r zookeeper-3.3.5/ user@ae01:/usr/local/ae
user@ae01:/usr/local/ae$ scp -r zookeeper-3.3.5/ user@ae02:/usr/local/ae
[*]设置myid


user@ae01:/usr/local/ae$ echo "1" > /usr/local/ae/storage/zookeeper/myid
user@ae02:/usr/local/ae$ echo "2" > /usr/local/ae/storage/zookeeper/myid
user@ae03:/usr/local/ae$ echo "3" > /usr/local/ae/storage/zookeeper/myid
  myid的值对应着上文中 server.x 的参数


三、启动Zookeeper 集群


[*]启动Zookeeper


user@ae01:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
user@ae02:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
user@ae03:/usr/local/ae/zookeeper-3.4.5/bin$ sudo zkServer.sh start
  由于ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,日志前面部分出现连接异常(java.net.ConnectException: Connection refused )是可以忽略的。集群在选出一个Leader后,最后稳定了。

[*]验证启动


user@ae01:/usr/local/ae/zookeeper-3.4.5/bin$ zkServer.sh status
JMX enabled by default
Using config: /usr/local/ae/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: leader


user@ae02:/usr/local/ae/zookeeper-3.4.5/bin$ zkServer.sh status
JMX enabled by default
Using config: /usr/local/ae/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower


user@ae03:/usr/local/ae/zookeeper-3.4.5/bin$ zkServer.sh status
JMX enabled by default
Using config: /usr/local/ae/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower

四、文档参考


[*]http://zookeeper.apache.org/doc/trunk/zookeeperOver.html
页: [1]
查看完整版本: Zookeeper 分布式环境搭建