ZooKeeper集群安装

时间:2023-03-08 21:42:24

ZooKeeper是Apache提供的。分布式服务协调系统,应用比較广泛。

由于项目中使用Kafka MQ,而Kafka全然使用ZooKeeper实现Kafka各组件的服务协调,包含Broker、Consumer等。

文档中的Linux命令,以#開始的为root用户的操作。以$開始的为zk用户的操作。

创建zk用户

# groupadd zk

# useradd -g zk zk

# passwd zk

准备安装文件夹

  • 创建ZooKeeper数据存储文件夹:

# mkdir -p /data/zookeeper

# chown -R zk:zk/data/zookeeper

  • 通过zk用户创建数据和日志文件夹:

$ mkdir/data/zookeeper/data

$ mkdir /data/zookeeper/log

安装ZooKeeper

  • 解压缩ZooKeeper二进制包:

# cd /usr/local/src

# tar -zxvfzookeeper-3.4.6.tar.gz -C /usr/local/

# chown -R zk:zk /usr/local/zookeeper-3.4.6

  • 改动ZooKeeper配置文件:

$ cd/usr/local/zookeeper-3.4.6/conf

$ cp zoo_sample.cfg zoo.cfg

$ vi zoo.cgf

改动配置见下图。包含dataDir, dataLogDir及三个ZooKeeper的server列表。

ZooKeeper集群安装

$ vi log4j.properties

改动zookeeper.log.dir,配置见下图,

ZooKeeper集群安装

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsYmVydHpob3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

  • 创建ZooKeeperServerId文件

在ZooKeeper的data文件夹中创建名称为myid文件,内容为ServerId编号,如上配置文件里,三台的ZooKeeper的myid内容分布为1, 2, 3。

$ cd /data/zookeeper/data

$ cat > myid

,按Enter键,再按Ctrl+d结束。

  • 改动zk用户的环境变量:

$ vi ~/.bash_profile

在文件里添加红框部分:

ZooKeeper集群安装

$source
~/.bash_profile

反复以上步骤。安装ZooKeeper到另外2台。构建一个三台的ZooKeeper集群。

启动ZooKeeper

集群中的全部ZooKeeper都能够通过以下的命令启动:

$ zkServer.sh start

正常情况下显示:

JMX enabled by default

Using config:/usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

通过以下的命令查看ZooKeeper是否启动成功:

$ zkServer.sh status

假设启动成功,则Leader的机器上显示:

ZooKeeper集群安装

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsYmVydHpob3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

在Follower的机器上显示:

ZooKeeper集群安装

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsYmVydHpob3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

停止

$ zkServer.sh stop