Linux centos7.x安装zookeeper 3.4.6教程
1. 环境准备
虚拟机集群,VMWare15.x linux centos 7.x集群,一般安装4–5台。小技巧,安装好一台之后,使用vmware的镜像克隆技术,克隆多台。克隆之后,修改一下ip地址,hostname等配置即可。 确保linux镜像系统中防火墙是关闭的 下载zookeeper的linux安装压缩包,版本是3.4.6
2. 安装zookeeper
上传安装包到某一台节点服务器上 在app安装目录下解压缩,linux一般在opt或者usr下安装,我这里是在opt下建立apps目录,用来安装zookeeper以及后续其他软件。
在apps目录下解压zookeeper安装包,执行shell解压缩命令
tar -zxf zookeeper-3.4.6.tar.gz
解压缩后,得到一个文件夹
进入这个解压缩后文件夹,进行配置信息设置
具体信息配置
先在这个解压缩后安装目录下,创建一个zkData文件夹 , mkdir zkData。记录下这个zkData的路径,我的是/opt/apps/zookeeper-3.4.6/zkData。 然后进入conf文件夹下,修改原有的zoo_sample.cfg文件名为zoo.cfg
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
这里的dataDir路径写上刚刚创建的zkData文件夹路径,这个是配置zookeeper的myid文件所在文件夹路径的地方,不能出错,一定一定注意。稍后会批量创建这个myid文件。
底部的三行配置信息,就是每一个zookeeper节点的名字以及对应的域名,还有内部通信和选举的端口
server.1=linux01(这个是配置zookeeper节点服务器的域名,自行修改) :2888:3888
server.2=linux02(这个是配置zookeeper节点服务器的域名,自行修改) :2888:3888
server.3=linux03(这个是配置zookeeper节点服务器的域名,自行修改) :2888:3888
其他信息不需要修改,server.1就是zookeeper的编号,后面我们的myid就和这个server.x这个数字x匹配即可。当然,数字编号可以自行修改,这里采用从1开始的数字编号。
实际是server.x=domain:2888:3888
3. 创建zookeeper存放数据目录
在每台节点服务器上执行以下shell命令
mkdir -p /opt/appdata/zkdata/
4. 将配置文件修改好之后的zookeeper文件夹复制给其他节点
在自己的opt/apps目录下,执行以下shell代码
scp -r zookeeper-3.4.6/ linux101:/opt/apps
注意根据自己的目标计算机ip地址或者域名替换掉linux100,这里采用ssh 的copy,检查以下是否有安装ssh,我的集群设置了ssh 免密登录,使用时不需要再次输入密码。
5. 在每台zookeeper节点的安装包中配置myid文件
需要在安装目录的zkData目录下,创建myid文件,注意不需要有后缀。
我的路径如下/opt/apps/zookeeper-3.4.6/zkData 使用 echo 1 > /opt/apps/zookeeper-3.4.6/zkData/myid ,按照刚刚说的,如果对应的server.1节点,那这里的myid就设置为1即可。 myid就是zookeeper内部有一个选举机制,奇数个zookeeper节点会进行选举,选出主节点。这个myid就是选举时用来区分每台zookeeper节点的编号,所以每台节点服务器的myid需要唯一。 myid的路径设置就是我们在conf的zoo.cfg文件的dataDir中设置的那个文件夹下创建的,文件名大家不要修改,就叫myid即可。
6.在每台zookeeper节点上检查以下信息,确保无误
zookeeper的数据存放路径,我这里设置的是/opt/appdata/zkdata/ zookeeper的配置文件,确保conf下的zoo.cfg文件中配置信息无误
确保自定义存放myid文件的目录创建并且myid文件存在,id唯一
/opt/apps/zookeeper-3.4.6/zkData
7.逐台节点服务器启动zookeeper
cd到安装目录的bin下
如下图
执行zkServer.sh脚本 ./zkServer.sh start就是启动,启动后,输入jps查看,是否有如下信息展示
2394 QuorumPeerMain就是zookeeper的线程名字,2394就是线程编号,注意会随着每次系统和程序启动而变化,并不是一直不变的。
./zkServer.sh stop 就是停止这个节点中的程序 ./zkServer.sh status查看zookeeper中这个节点服务器的状态,包括角色
8.登录命令行客户端
bin/zkCli.sh 本机连接
就是连接到本机中的zookeeper,并执行指令,注意这时候,信息也是会同步到其他zookeeper节点服务器上的 在linux100节点服务器上本机连接
查看存储的信息,node节点为单位进行信息查看和存储 ls / 查看根目录下存储信息 create /doit haha, /doit这是节点路径 haha是一个字符串,是这个节点需要存储的值。 我在linux102节点,连接上linux101查看信息,
./zkCli.sh -server linux101:2181 连接到指定的服务节点
注意这里执行某个脚本,如果是以文件路径,则需要这个脚本具备可执行权限。这里就是给了一个脚本的相对路径,需要用户cd到这个脚本所在目录下 linux101就是zookeeper一个节点的域名,2181就是默认的对外开放的访问端口号。
9.自定义批量启动和关闭脚本
启动脚本,注意这里的主机域名需要修改为自己的,循环次数根据配置的zookeeper节点数量来修改调整
#!/bin/bash
for i in 0 1 2
do
ssh linux10${i} "source /etc/profile;/opt/apps/zookeeper-3.4.6/bin/zkServer.sh start"
done
sleep 2
for i in { 0.. 2}
do
ssh linux10${i} "source /etc/profile;/opt/apps/zookeeper-3.4.6/bin/zkServer.sh status"
done
关闭脚本
#!/bin/bash
for i in 0 1 2
do
ssh linux10${i} "source /etc/profile;/opt/apps/zookeeper-3.4.6/bin/zkServer.sh stop"
done
sleep 2
for i in { 0.. 2}
do
ssh linux10${i} "source /etc/profile;/opt/apps/zookeeper-3.4.6/bin/zkServer.sh status"
done