Zookeeper: 本地安装和集群安装

本地安装

1.将zookeeper包上传到/opt/software

2.解压
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

3.改名(在/opt/module下)
mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

4.配置环境变量
编辑文件
sudo vim /etc/profile.d/my_env.sh
添加
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
export PATH= P A T H : PATH: PATH:ZOOKEEPER_HOME/bin

5.让环境变量生效
①断开重新连接
②source /etc/profile.d/my_env.sh

6.修改配置文件
进入目录
cd /opt/module/zookeeper-3.5.7/conf
修改文件的名字
mv zoo_sample.cfg zoo.cfg
编辑zoo.cfg
vim zoo.cfg
修改
dataDir=/opt/module/zookeeper-3.5.7/zkData

(创建目录 mkdir /opt/module/zookeeper-3.5.7/zkData)

7.启动zookeeper | 查看状态
zkServer.sh start | status

8.启动客户端
zkCli.sh

9.退出客户端
quit

配置参数

1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
在这里插入图片描述

2)initLimit = 10:LF初始通信时限
在这里插入图片描述

Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
3)syncLimit = 5:LF同步通信时限
在这里插入图片描述

Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
4)dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。

5)clientPort = 2181:客户端连接端口,通常不做修改。

集群安装

1.在本地模式配置好的情况下修改

2.先把ZK服务停掉(停不掉就kill掉,重启linux)
zkServer.sh stop

3.将zkData中的数据删除
cd /opt/module/zookeeper-3.5.7/zkData
rm -rf ./*

4.在zkData目录中创建myid文件
touch myid
在文件中写入节点的id值
hadoop102(写)---->2
hadoop103(写)---->3
hadoop104(写)---->4

5.对配置文件进行修改
cd /opt/module/zookeeper-3.5.7/conf

vim zoo.cfg
添加如下内容
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

(说明:server.myid的值=myid对应的服务器的地址:zk通讯端口号:zk选举Leader的端口号)

6.分发(同步)
xsync /opt/module/zookeeper-3.5.7

7.在hadoop103和hadoop104上做以下操作
①配置环境变量(在hadoop102进行同步)
rsync -av /etc/profile.d/my_env.sh root@hadoop104:/etc/profile.d/
rsync -av /etc/profile.d/my_env.sh root@hadoop103:/etc/profile.d/
让hadoop103和hadoop104环境变量生效
②修改myid的值
hadoop103(写)---->3
hadoop104(写)---->4

8.在每个节点启动Server
zkServer.sh start
zkServer.sh status

群起脚本

zkCluster.sh

#!/bin/bash

#判断参数的个数
if [ $# -ne 1 ]
	then
		echo "参数的个数不对!!!"
		exit
fi

#判断参数的内容
var=""
case $1 in
"start")
	var=start
	;;
"stop")
	var=stop
	;;
"status")
	var=status
	;;
*)
	echo "输入的参数内容不对!!!"
	exit
	;;
esac

for host in hadoop102 hadoop103 hadoop104
do
	echo ====================$host==============================
	ssh $host zkServer.sh $var
done

猜你喜欢

转载自blog.csdn.net/weixin_45427648/article/details/131756608