大数据集群学习(4):zookeeper安装部署

42 阅读2分钟

Zookeeper是一个分布式的、开源的应用程序的协调服务。
一般用于集群管理,协调

zookeeper下载

去zookeeper的官网下载zookeeper的包:zookeeper.apache.org/releases.ht…
我这里下载的是3.7.0版本的,也可以选择其他的版本来下载

下载好之后,将包上传到/apps/zookeeper目录下

zookeeper 安装

将安装包解压,解压完成后重命名

tar -zxvf  apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin zookeeper-3.7.0

进入conf/目录,这里有一份zoo_sample.cfg的配置文件模板,先复制一份,并修改名字为zoo.cfg

cp zoo_sample.cfg zoo.cfg

vim编辑zoo.cfg配置文件,修改为以下内容 image.png
手动在/apps/zookeeper/zookeeper-3.7.0下创建zkData,zkLogs目录

image.png

在node2、node3机子上也进行同样的配置操作
也可以使用命令将配置文件同步过去

scp /apps/zookeeper/zookeeper-3.7.0/conf/zoo.cfg root@node2:/apps/zookeeper/zookeeper-3.7.0/conf
scp /apps/zookeeper/zookeeper-3.7.0/conf/zoo.cfg root@node3:/apps/zookeeper/zookeeper-3.7.0/conf

注意:zookeeper可以不在node2、node3上进行安装配置,安装zookeeper。但是不可以只安装node1,node2,要么只安装node1,要么node1~node3都安装。意思就是安装zookeeper只能安装奇数节点,不可以安装偶数节点。
原因是:zookeeper安装奇数节点的情况下,可以保证在有节点宕机的情况下,会选举出新的leader,保证集群的稳定性和可靠性。而且偶数节点容易导致zookeeper产生数据不一致的问题。

分别在3台机子上配置系统环境变量

vim /etc/profile

输入以下内容

#zookeeper
export ZOOKEEPER_HOME=/apps/zookeeper/zookeeper-3.7.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin

使环境变量生效

source /etc/profile

启动集群

分别在3台机子上都执行
启动:

 bin/zkServer.sh start

停止:

 bin/zkServer.sh stop

查看状态:

 bin/zkServer.sh status

成功启动zookeeper后,输入jps能看到QuorumPeerMain这个进程 image.png

制作一件启动脚本

进入zookeeper下的bin目录,新建一个zk.sh的目录,在里面输入以下内容

#!/bin/bash
case $1 in
"start"){
for i in node1 node2 node3
do
 echo ---------- zookeeper $i 启动 ----------
ssh $i "/apps/zookeeper/zookeeper-3.7.0/bin/zkServer.sh start"
done
};;
"stop"){
for i in node1 node2 node3
do
 echo ---------- zookeeper $i 停止 ----------
ssh $i "/apps/zookeeper/zookeeper-3.7.0/bin/zkServer.sh stop"
done
};;
"status"){
for i in node1 node2 node3
do
 echo ---------- zookeeper $i 状态 ----------
ssh $i "/apps/zookeeper/zookeeper-3.7.0/bin/zkServer.sh status"
done
};;
esac

对文件进行授权

chmod 777 zk.sh

测试脚本,在node1上执行

bin/zk.sh start

出现以下信息就是可以了(我是查看状态的命令,启动和停止也是大同小异) image.png

以上过程若是有错误,欢迎指正哈😀