本地安装
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