【超详细】CentOS 7安装zookeeper
本文介绍了如何在CentOS 7系统上安装zookeeper
CentOS 7安装zookeeper
0、顺利完成安装需要的知识储备
1. 基础的Linux系统知识
2. 基本的Vim编辑器使用方法
1、系统环境
操作系统:Linux CentOS 7 64位
JDK版本:1.8.0_262
2、单机安装步骤
①下载并解压安装包
官网下载zookeeper最新稳定版本
复制上图红框中的地址,选择一个路径打开终端下载压缩包。这里我选择的是在/home/<username>/Software目录下安装
使用如下命令解压压缩文件
$ wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
$ tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
②修改配置文件并启动单机节点
首先删除多余的压缩包
$ ll
总用量 12224
drwxrwxr-x 6 vm1 vm1 133 8月 24 14:38 apache-zookeeper-3.6.3-bin
-rw-rw-r-- 1 vm1 vm1 12516362 4月 13 03:06 apache-zookeeper-3.6.3-bin.tar.gz
$ rm apache-zookeeper-3.6.3-bin.tar.gz
接下来把zookeeper路径命改得简单一些
$ mv apache-zookeeper-3.6.3-bin zookeeper
$ ll
总用量 0
drwxrwxr-x 6 vm1 vm1 133 8月 24 14:38 zookeeper
复制配置文件并启动zookeeper(这里直接改配置文件名字也可以,但是保险起见还是复制一份比较好)
$ cd zookeeper/conf
$ cp zoo_sample.cfg zoo.cfg
$ cd ../bin
$ sh zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/vm1/Software/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
等待一段时间后查看zookeeper运行状态(不要开启后立刻查看状态,因为zookeeper开启需要一定的时间)
$ sh zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/vm1/Software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone
可以看到我们的zookeeper已经开启成功了,并且运行在单机(standalone)状态。
3、搭建zookeeper集群
如果在服务器端一台一台搭建zookeeper节点组成集群,需要多次重复单机安装步骤。这里为了简化操作,我们选择直接在一台物理机上复制虚拟机的方法创建集群。
①修改配置文件
在刚刚创建单机节点的虚拟机下,找到zookeeper的配置文件路径。这是我的
$ pwd
/home/vm1/Software/zookeeper/conf
然后更改zoo.cfg配置文件,在文件的末尾添加配置:
server.1=192.168.188.131:2888:3888
server.2=192.168.188.132:2888:3888
server.3=192.168.188.133:2888:3888
请注意,这里的三个ip地址都是我自己的虚拟机的地址。你需要根据实际情况配置你自己的虚拟机ip地址。
zookeeper需要用到三个端口,请确保它们没有被占用。它们的作用如下:
1、2181 : 对 client 端提供服务
2、2888 : 集群内机器通信使用
3、3888 : 选举 leader 使用(Leader监听此端口)
最后关闭虚拟机的防火墙。如果这里不是在root用户下操作的,则还需要输入root用户密码
$ systemctl stop firewalld
②克隆虚拟机
首先关闭虚拟机。然后在VMware Workstation中克隆两台相同配置的虚拟机
最好把虚拟机放在被克隆虚拟机相同的文件夹下,便于管理
点击完成等待克隆结束。用同样的方式再克隆一台VM3,这样我们就有三个节点了。
③启动集群
首先启动克隆机,可以看到用户名还是vm1,所以我们先更改克隆机用户名。
注销当前用户,用root用户登录
打开终端,执行命令
$ usermod -l vm2 -d /home/vm2 -m vm1
$ reboot
更改用户名为vm2
更改系统语言为汉语,然后重启,更改用户组名
$ su
密码:
$ groupmod -n vm2 vm1
用同样的方式修改vm3。
然后检查一下两台克隆机的ip是否正确
$ ifconfig | grep inet
inet 192.168.188.131 netmask 255.255.255.0 broadcast 192.168.188.255
inet6 fe80::edef:af82:3e5a:a5d7 prefixlen 64 scopeid 0x20<link>
inet6 fe80::ed50:b27b:ded7:f31c prefixlen 64 scopeid 0x20<link>
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
我这里修改过虚拟机的配置(删除了一台虚拟机,并移动了虚拟机的位置),所以各克隆机的节点ip不是按顺序排列下来的。下面是我的三台虚拟机的ip地址
vm1 : 192.168.188.134
vm2 : 192.168.188.131
vm3 : 192.168.188.133
那么就要更改配置文件。把三台机器上的zoo.cfg末尾的配置改成下面这样
server.1=192.168.188.134:2888:3888
server.2=192.168.188.131:2888:3888
server.3=192.168.188.133:2888:3888
为三个节点分别配置myid,这里以节点1(ID为1)为例,2和3同理(ID为2和3)
vim /tmp/zookeeper/myid
#写入1
$ cat /tmp/zookeeper/myid
1
然后分别启动三台虚拟机上的zookeeper
$ sh zkServer.sh start
接下来查看三台机器的状态,应该能看到如下信息
#vm1
$ sh zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/vm1/Software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
#vm2
$ sh zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/vm2/Software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
#vm3
$ sh zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/vm3/Software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
如果你没有顺利地查看到上面的提示信息,有可能是因为你的虚拟机防火墙拦截了zookeeper端口的通信。只要先关闭zkServer,再用$ systemctl stop firewalld
命令关闭防火墙后重启zkServer即可。
*如果仍然无法正确开启zookeeper集群模式,可以查看zookeeper/logs路径下的.out文件排查原因。
当然在你的机器上未必是vm3为leader,哪台机器作为leader是由选举结果决定的,这里面涉及到zookeeper的选举机制,在这里就不做展开了。
更多推荐
所有评论(0)