此篇之前,得先看Storm开发——Zookeeper集群设置(单例),熟悉zookeeper的单例模式配置,也就是先运行起来!如有问题请留言,鱼一个人也是走了很多弯路,哎,不多谈。(备注./同样是zookeeper的根目录)
配置好单个server的zookeeper配置
配置文件./conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/zookeeper-3.4.13/data
dataLogDir=/usr/local/zookeeper/zookeeper-3.4.13/logs
server.1=xxxx:2888:3888
server.2=yyyy:2888:3888
server.3=zzzz:2888:3888
# the port at which the clients will connect
clientPort=2181
配置hosts以方便zookeeper通信
> vi /etc/hosts
127.0.0.1 xxxx
192.168.0.1 yyyy
192.168.0.2 zzzz
配置集群状态
检查myid文件,同时复制zookeeper到其他server上
scp -r var/local/zookeeper/zookeeper-3.4.13.tar.gz root@IP:/var/local/zookeeper
删除并重建data和logs文件,以及myid(一定不能沿用原来的,特别是data文件夹的内容)
> rm -rf data
> rm -rf logs
> mkdir data
> mkdir logs
> vi ./data/myid
2
> :wq
修改配置文件./conf/zoo.cfg
server.myid=0.0.0.0:2888:3888#对应修改myid的server为0.0.0.0,非常重要!不知道为嘛用本机IP127.0.0.1会导致通信失败
参照单例zookeeper配置服务,此处选配
开启!
> ./bin/zkServer.sh start
检查状态
> ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: followe
第三行有报错或者单例模式都是有问题的(鱼表示借来的server居然被选举成leader了。看鱼重启下教育下他)
还有一个常见问题,因为鱼这里用的root用户,但是生产环境下,习惯每个服务都是有自己的执行用户的,所以在非root用户的情况下一定要注意zookeeper这个文件目录的权限归属,以防因权限归属服务无法起。
这里Zookeeper集群设置就算完成了,如果要加机器,上文请举一反三吧!当然Zookeeper不止可以用作Storm,还有他本身的最基本的功能。
本文文集链接Storm开发历程