zookeeper集群配置

1.

创建了4台虚拟机,分别配置其/etc/hosts文件,使其互相能ping通

192.168.213.128  master

192.168.213.129  slave1

192.168.213.131  slave2

192.168.213.130  slave3

全部机器上都安装了openjdk7-sdk

2.

Apache官网上下载了最新的zookeeper

解压到master:/home/storm/storm/zookeeper目录下

修改/conf/zoo.cfg文件

插入以下的字段

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

server.4=slave3:2888:3888

修改dataDir字段的值

dataDir=/home/storm/storm/zookeeper

3.

然后将zookeeper文件复制到各个slave

scp -r zookeeper / storm@slave1:/home/storm/storm/zookeeper

scp -r zookeeper / storm@slave2:/home/storm/storm/zookeeper

scp -r zookeeper / storm@slave3:/home/storm/storm/zookeeper

这时报错说端口拒绝,原来是openssh没装,装一下就行了

4.

然后将每个机器下的dataDir目录下新建一个myid文件,其中的值是对应的server.X

对于我的情况就是:

master:/home/storm/storm/zookeeper下新建一个myid文件,其中写了1

slave1:/home/storm/storm/zookeeper/myid  2

slave2:/home/storm/storm/zookeeper/myid  3

slave3:/home/storm/storm/zookeeper/myid  4

myid里的数字一定不能写错,否则集群无法创建,我一开始写错,然后调了半天才发现问题

5.

然后所有节点运行/bin/zkServer.sh start

所有节点启动成功后,集群会自动选举出leader,其他的机器自然变成follower

运行/bin/zkServer.sh status,可以查看状态

有一点需要注意的是,集群没有完全运行起来的时候,zookeeper.out里会全是报错信息

connection refuse什么的

这是正常的,因为此时集群里没有足够的机器,当后续节点成功启动之后,就没有问题了

原文地址:https://www.cnblogs.com/stevenczp/p/4924420.html