天天看点

Zookeeper集群安装部署详解

作者:Linux云计算架构

安装前准备

准备3台服务器

192.168.0.111 sparkproject001

192.168.0.118 sparkproject002

192.168.0.119 sparkproject003

并配置hosts文件:

[root@sparkproject001 conf]# vi /etc/hosts
  • (1)安装Jdk
  • (2)拷贝Zookeeper安装包到Linux系统下
  • (3)解压到指定目录

1)官网首页:

https://zookeeper.apache.org/

[root@sparkproject001 myproject]# tar -zxvf zookeeper-3.4.10-bin.tar.gz

(4)修改名称

[root@sparkproject001 myproject] mv zookeeper-3.4.10 zookeeper-3.4.10

2)配置修改

1)将/usr/myproject/zookeeper-3.4.10/conf这个路径下的 zoo_sample.cfg 修改为 zoo.cfg;

[root@sparkproject001 conf]# mv zoo_sample.cfg zoo.cfg

(2)打开 zoo.cfg 文件,修改 dataDir 路径:

dataDir= /usr/myproject/zookeeper-3.4.10/zkData

dataLogDir= /usr/myproject/zookeeper-3.4.10/zklogData

设置集群配置:

server.1=sparkproject001:2888:3888

server.2=sparkproject002:2888:3888

server.3=sparkproject003:2888:3888

Zookeeper集群安装部署详解

注意:此时一定要配置hosts文件

Zookeeper集群安装部署详解

server.A=B:C:D

  • A是一个数字,表示这个是第几号服务器。集群模式下需要在zoo.cfg中dataDir指定的目录下创建一个文件myid,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
  • B是这个服务器的地址。
  • C是这个服务器Follower与集群中的Leader服务器交换信息的端口。
  • D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

拷贝配置好的 Zookeeper 配置文件到其他机器上

scp /usr/myproject/zookeeper-3.4.10/conf/zoo.cfg 192.168.0.118:/usr/myproject/zookeeper-3.4.10/conf

scp /usr/myproject/zookeeper-3.4.10/conf/zoo.cfg 192.168.0.119:/usr/myproject/zookeeper-3.4.10/conf

在每个节点上创建数据目录和日志目录

Zookeeper集群安装部署详解

在每个节点的dataDir指定的目录下创建一个 myid 的文件

/usr/myproject/zookeeper-3.4.10/zkData

myid的值分别为:1,2,3

配置 Zookeeper 启动脚本

vim /etc/init.d/zookeeper
#!/bin/bash
#chkconfig:2345 20 90
#description:Zookeeper Service Control Script
ZK_HOME='/usr/myproject/zookeeper-3.4.10'
case $1 in
start)
	echo "---------- zookeeper 启动 ------------"
	$ZK_HOME/bin/zkServer.sh start
;;
stop)
	echo "---------- zookeeper 停止 ------------"
	$ZK_HOME/bin/zkServer.sh stop
;;
restart)
	echo "---------- zookeeper 重启 ------------"
	$ZK_HOME/bin/zkServer.sh restart
;;
status)
	echo "---------- zookeeper 状态 ------------"
	$ZK_HOME/bin/zkServer.sh status
;;
*)
    echo "Usage: $0 {start|stop|restart|status}"
esac
           

置开机自启

#设置开机自启
chmod +x /etc/init.d/zookeeper
chkconfig --add zookeeper

#分别启动 Zookeeper
service zookeeper start

#查看当前状态
service zookeeper status
           

继续阅读