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什么的
这是正常的,因为此时集群里没有足够的机器,当后续节点成功启动之后,就没有问题了