Zookeeper集群的安装配置实际上非常简单,只需编辑几个配置文件即可。
有一点需要注意的,Zookeeper集群中Zookeeper服务的数量尽量是奇数个,因为Zookeeper的仲裁机制要求超过半数的服务正常才可以,所以如果是4个的话,那两个正常是无法工作的,必须要3个正常才行。因此zookeeper集群中服务的数量就至少是3个,这样的话保证2个不挂掉就能正常工作。
下面是具体的配置过程:
首先编辑配置文件zoo.conf
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/data/zk1
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=192.168.1.101:3333:3334
server.3=192.168.1.102:4444:4445
配置文件中主要是最后3行,指定了3个zookeeper服务器server.1,server.2和server.3
其中配置了3个服务器的ip和两个端口号,两个端口号分别用于仲裁通信和群首选举。如果zookeeper运行在不同的服务器上,那么端口号是可以相同的,如果是测试运行在同一台服务器上,那么把端口号错开。
同样的,clientPort也是,如果运行在同一个服务器上,也选择不同的端口号。
当启动一个服务器时,我们需要知道启动的是哪个服务器。一个服务器通过读取dataDir配置的目录下一个名为myid的文件来获取服务器ID信息。可以通过以下命令来创建这些文件:
echo 1 > /tmp/data/zk1/myid
echo 2 > /tmp/data/zk2/myid
echo 3 > /tmp/data/zk3/myid
这样子,配置就基本完成了,然后启动Zookeeper服务器:
./zkServer.sh start ./zoo1.cfg
如果只启动一个服务器的话zookeeper.out的日志输出里会报错,因为Zookeeper服务的数量少于半数,当启动了第二个的时候就正常了,可以进行工作了。
如果是用客户端进行连接,则客户端也要指定集群:
./zkCli.sh -server 127.0.0.1:2181,192.168.1.101:2182,192.168.1.102:2181
客户端会自动连接的一个server,如果这个server挂了,客户端会切换到另一个。
转载请注明出处:http://blog.csdn.net/redstarofsleep
更多内容请关注: