linux搭建zookeeper集群

一、搭建环境

1.CentOS6.10(最少三台主机,如果机器多,保证主机数量是奇数,我这里就是用三台给大家演示)
2.zookeeper-3.4.6.tar.gz
3.jdk1.8.0_144.tar.gz(zookeeper是运行在jvm虚拟机上的进程)
jdk的环境变量配置不熟悉,参考我搭建hadoop伪分布式里面的步骤https://blog.csdn.net/qq_44719527/article/details/104560392

4.配置问题和解决方法在文章最后说明

二、搭建步骤

1.将jdk环境变量配置好
2.上传zookeeper压缩包
(1)这里有很多方法,比如建立物理机与虚拟机共享文件夹
或者直接yum install -y lszrz,其中rz 回车是上传。也可以使用其他远程连接工具,比如 CRT,Xshell等。总之就是将压缩包在物理机导入Linux中放入/opt/software(我存所有tar.gz的目录)
在这里插入图片描述
3.解压
(1)-C c是大写代表解压到非当前目录,
(2)/opt/module/是解压目标目录

tar zxvf zookeeper-3.4.6.tar.gz -C /opt/module/

在这里插入图片描述
4.更名,因为解压完的带着版本号,对以后操作不方便,所以改一下名称,然后进入zookeeper看一下里面的目录结构

mv zookeeper-3.4.6/ zookeeper

在这里插入图片描述
5.在zookeeper目录下创建一个data目录,用来保存zookeeper相关的数据

mkdir data

6.进入到zookeeper下的conf目录,将zoo_sample.cfg文件拷贝一份改名为zoo.cfg
在这里插入图片描述
7.配置zoo.cfg文件
(1)修改dataDir,路径是刚才新建的data目录,不要写错。
在这里插入图片描述
(2)在文件末尾处添加然后保存退出,因为我在/etc/hosts文件里做了主机名和IP映射。所以我这里直接写的主机名。你如果没有做映射,那就写主机的IP地址。

server.1=hadoop102:2888:3888
server.2=hadoop103:2888:3888
server.3=hadoop104:2888:3888

在这里插入图片描述
8.在新建的data目录下新建一个文件名为myid,编辑一个数字1,这个1是与刚才server.1相对应的,然后保存退出。最好是cat查看一下,保证创建好。

vim myid

内容就写一个1
在这里插入图片描述
在这里插入图片描述
9.将zookeeper这个整体目录拷贝到另外两台主机,两种方式,如果对shell脚本不熟悉的,可以使用第二种方式。但是无论哪种方式都需要输入密码,如果想要不多次输入密码,需要配置ssh免密登录,参考https://blog.csdn.net/qq_44719527/article/details/104670797
(1)方式一:使用分发脚本,新建一个sync.sh的脚本文件

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=102; host<105; host++)); do
        #echo $pdir/$fname $user@hadoop$host:$pdir
        echo --------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

(2)方式二:使用scp拷贝。

scp -r zookeeper/ root@hadoop103:/opt/module/

10.到目标主机检查确认有没有拷贝或分发成功。
配置免密登录的直接切换

ssh hadoop103
ssh hadoop104

在这里插入图片描述
在这里插入图片描述
11.更改其他主机的zookeeper下的data目录里的myid文件。原因就是之前在zoo.cfg里面配置的server.1和server.2 和server.3每台主机具有唯一的id号而且要与刚才配置饿server后面的数字对应上。
第二台myid内容2
在这里插入图片描述
第三台myid内容3
在这里插入图片描述
centos7关闭防火墙
1、查看systemctl status firewalld.service
2、临时关闭,下次开机会自动启动防火墙systemctl stop firewalld.service
3、永久关闭防火墙systemctl disable firewalld.service

三、启动zookeeper集群

1.进入zookeeper目录下,三台做同样操作
bin/zkServer.sh start 开启服务
bin/zkServer.sh status 查看服务状态
bin/zkServer.sh stop 停止服务

bin/zkServer.sh start

2.查看状态,三台状态其中两台是follower,只有一台是leader。

bin/zkServer.sh status

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.使用jps查看jvm虚拟机进程
在这里插入图片描述
4.单个启动比较麻烦,可以采用群起脚本,关闭脚本的方式
(1)演示一个关闭集群

#!/bin/bash
echo "stop zkServer..."
for host in 2 3 4 
do
	echo "--------------hadoop10$host--------------------"
	ssh hadoop10$host "source /etc/profile;/opt/module/zookeeper/bin/zkServer.sh stop"
	echo "$1 结束"
done

在这里插入图片描述
配置完成。

四、问题

1.data文件夹里的myid 里的id好一定要保证唯一且与zoo.cfg里的配置相对应上。
2.保证jdk已经配置好。
3.其他问题私信博主

写作不易,如果对您有所帮助,请给一个小小的赞,您的点赞是对我莫大的支持和鼓励,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值