安装前准备
1.1. 安装JDK
对应的JDK安装可以参考博主的另一篇博客: Centos7安装和配置JDK1.8版本
1.2. 下载对应的Zookeeper安装包
下载地址: https://zookeeper.apache.org/
下载截图:
1.3. 上传安装包至服务器并配置软连接
解压对应的安装包:
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
配置软连接:
ln -s 源文件 目标文件
ln -s /opt/module/apache-zookeeper-3.5.7-bin/ /opt/module/zookeeper
目录截图如下:
2. Zookeeper本地安装
1)将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg:
mv zoo_sample.cfg zoo.cfg
2)打开 zoo.cfg 文件,修改 dataDir 路径
vim zoo.cfg
# 修改如下内容
dataDir=/opt/module/zookeeper/zkData
# 并新建如下文件夹
mkdir /opt/module/zookeeper/zkData
3)启动 Zookeeper
cd /opt/module/zookeeper/
bin/zkServer.sh start
4)查看进程和状态
# 查看进程
jps
# 查看状态
/opt/module/zookeeper/bin/zkServer.sh status
5)启动客户端
/opt/module/zookeeper/bin/zkCli.sh
6)退出客户端
7)停止Zookeeper
/opt/module/zookeeper/bin/zkServer.sh stop
3. 配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
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:客户端连接端口,通常不做修改
4. Zookeeper的集群安装
说明:在Zookeeper的集群安装中,一般是3台节点以及以上,并且是奇数台
4.1. 配置服务器编号
1)在/opt/module/zookeeper/ 这个目录下创建 zkData
mkdir zkData
2)在/opt/module/zookeeper/zkData 目录下创建一个 myid 的文件
vi myid
# 在文件中添加与 server 对应的编号(注意:上下不要有空行,左右不要有空格)
2
注意:添加 myid 文件,一定要在 Linux 里面创建,在 notepad++里面很可能乱码
3)拷贝配置好的 zookeeper 到其他机器上
xsync zookeeper-3.5.7
# 并在其他节点也配置相应软连接
# 并分别在 其他节点 上修改 myid 文件中内容为 3、4
4)同步 zoo.cfg 配置文件
xsync zoo.cfg
4.2. 配置zoo.cfg文件
1)重命名/opt/module/zookeeper-3.5.7/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
2)打开 zoo.cfg 文件,并配置对应的参数配置
vim zoo.cfg
# 修改数据存储路径配置
dataDir=/opt/module/zookeeper/zkData
# 增加如下配置
#######################cluster##########################
server.2=bigdata01:2888:3888
server.3=bigdata02:2888:3888
server.4=bigdata03:2888:3888
3)配置参数解读
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的地址;
C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据就是A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server。
4.3. 启动Zookeeper集群并查看状态
1)在所有机器上执行如下命令
bin/zkServer.sh start
2)可以执行如下命令查看Zookeeper的状态
bin/zkServer.sh status
4.4. ZK集群启动停止脚本
1)在bigdata01 的/root/bin 目录下创建脚本
vim zk.sh
2)脚本内容如下
#!/bin/bash
case $1 in
"start"){
for i in bigdata01 bigdata02 bigdata03
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper/bin/zkServer.sh start"
done
};;
"stop"){
for i in bigdata01 bigdata02 bigdata03
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper/bin/zkServer.sh stop"
done
};;
"status"){
for i in bigdata01 bigdata02 bigdata03
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeeper/bin/zkServer.sh status"
done
};;
esac
3)增加脚本执行权限并进行集群的启动和停止
# 添加文件权限
chmod u+x zk.sh
# 启动集群
zk.sh start
# 停止集群
zk.sh stop
版权声明:「DDKK.COM 弟弟快看,程序员编程资料站」本站文章,版权归原作者所有