zookeeper集群搭建

发布时间 2023-03-24 20:24:34作者: wancy

1. zookeeper介绍

  • ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是GoogleChubby一个开源的实现,是HadoopHbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
  • ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  • ZooKeeper包含一个简单的原语集,提供JavaC的接口。

下面介绍CentOS与Ubuntu搭建Zookeeper集群。

2. 下载准备

  2.1 下载VMware Workstation 

  链接:https://pan.baidu.com/s/1K7esQJktLCHH55_jqN3kng   提取码:nvli 

  2.2  下载CentOS

  链接:https://pan.baidu.com/s/1BIim25w1bZm9B9htKGiXHQ  提取码:3wn5

  2.3 下载zookeeper

  一定下载-bin.tar.gz 的包,不需要编译打包。

  链接:https://pan.baidu.com/s/18h2KvcexY_TX4dwDfSjxnA

  提取码:jil8 

3. 安装CentOS操作系统

 

  启动虚拟机(自己安装虚拟机),点击创建新的虚拟机(中间很多步骤省略了,详细的可以去我的网盘链接下载)。

 

  记得选择带桌面的系统,方便些。

4.  复制apache-zookeeper-3.7.1-bin.tar到虚拟机桌面

   如果想安装在/usr/local里面,需要修改此文件夹的权限。

 

  更改权限,使得该文件夹为可读可写,先切换到root”用户,通过“chmod -R” 777 路径修改。

 

 

 

           然后就能将文件复制进去了。

5.  解压缩apache-zookeeper-3.7.1-bin.tar

 

  命令如下:sudo tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz

 

 

 报错了,以下是解决方法。

 

 

 

6.  克隆两个虚拟机

  先克隆两个放着,后面克隆也行

7. 创建配置文件zoo.cfg

 

  在对应的conf目录用如下命令创建zoo.cfg文件。

  cp zoo_sample.cfg zoo.cfg

 

8.  编辑配置文件zoo.cfg

  编辑之前先创建data文件夹 mkdir data

 

  编辑zoo.cfg

  gedit zoo.cfg

  需要配置dataDir将文件中的dataDir=/tmp/zookeeper更改为如图所示。dataDir=/usr/local/apache-zookeeper-3.7.1-bin/data

 

  另外,在文件末尾根据实际的IP地址添加

  server.1=192.168.234.3:2888:3888

  server.2=192.168.234.4:2888:3888

  server.3=192.168.234.5:2888:3888

  三个地址分别代表三个虚拟机的IP地址。

8.  配置myId文件

  在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server。该数字必须和zoo.cfg文件中的server.x中的x一一对应.并且同一集群内每个节点的数字是不相同的。

  使用命令vim myid

然后输入编号,这里地址与server编号对应,此处是1

 

  按下Esc键然后输入:wq!保存退出。

  至此,第一台虚拟机的zookeeper配置好了,剩下的两台类似。

 

9.  配置另外两台虚拟机

 

  将另外两个虚拟机的主机分别命名为node02node03

 

  查看主机名hostname

  进入root用户,修改为node02

  gedit /etc/hostname

 

 

 

 

  重新启动电脑,看是否修改成功。

  其他配置改下myid就可以了,第三个虚拟机也是。

 

   最后,Ip地址也要改下。

  然后重新启动电脑,Ip生效。

10. 测试是否互相能ping的通

 

  启动三个虚拟机。

 

  node01  ping node02node03

 

 

  node02 ping node01node03

 

 

 

 

  node03 ping node01node02

 

 

  都能ping得通。

11. 分别启动zookeeper

 

  node01,node02,node03启动

 

  使用./zkServer.sh start启动zookeeper

 

 

 

 

  其他的也启动。

 

 

  使用以下命令查看启动状态

 

  zkServer.sh status报错了。

 

 

 

  原因是没有关闭防火墙

 

  systemctl status firewalld.service  查看防火墙状态。

 

 

 

  关闭防火墙

 

  systemctl stop firewalld.service

 

 

 

  永久关闭防火墙的命令如下(三个虚拟机)

 

  systemctl disable firewalld.service

 

 

  再次重新启动zookeeper。全部启动完。

  然后输入./zkServer.sh status查看启动状态。最后node01node02node03的结果如下:

 

 

 

 

 

 

 

  其中node01followernode02leadernode03follower

 

  以上就是zookeeper完全分布式集群正常启动。

12. 关闭zookeeper

 

 

  还有关于ubuntu环境下zookeeper集群的搭建步骤,这里就不写了,需要的在网盘中下载查看。

  链接:https://pan.baidu.com/s/14WjXQuGQ2tn3i3B4XVxZ8g
  提取码:vyn6

 

 

 

 

  参考资料:https://baike.baidu.com/item/zookeeper/4836397?fr=aladdin

 

  不足或错误之处欢迎指正与评论!