一、单机部署
1、安装包下载
https://archive.apache.org/dist/zookeeper
2、上传并解压
tar -zvxf zookeeper-3.4.14.tar.gz
3、配置环境变量
my_env.sh是自己创建的环境变量文件,你也可以自己创建
vim /etc/profile.d/my_env.sh
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/usr/local/src/zookeeper/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source /etc/profile.d/my_env.sh
4、复制配置
cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
5、启动单机
启动
$ZOOKEEPER_HOME/bin/zkServer.sh start
jps
查看状态
$ZOOKEEPER_HOME/bin/zkServer.sh satus
关闭
$ZOOKEEPER_HOME/bin/zkServer.sh stop
二、 集群配置
1、分发文件
scp /etc/profile.d/my_env.sh root@hadoop101:/etc/profile.d/
scp /etc/profile.d/my_env.sh root@hadoop102:/etc/profile.d/
scp -r /usr/local/src/zookeeper root@hadoop101:/usr/local/src/
scp -r /usr/local/src/zookeeper root@hadoop102:/usr/local/src/
记得source环境变量
2、修改zoo.cfg配置
zoo.cfg下面默认有六个属性,他们分别是:1.tickTime,2.initLimit,3.syncLimit,4.dataDir,5.clientPort,6.dataLogDir
下面我们来对这六个属性做详细的分析
1.tickTime:通信心跳时间,单位毫秒
tick翻译成中文的话就是滴答滴答的意思,连起来就是滴答滴答的时间,寓意心跳间隔,单位是毫秒,系统默认是2000毫秒,也就是间隔两秒心跳一次。
tickTime的意义:客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。
2.initLimit
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
3.syncLimit
集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。
4.dataDir
该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
5.clientPort
zookeeper默认的端口号是2181,客户端会连接这个端口,zookeeper可以通过这个端口接收来自客户端发送的请求
6.dataLogDir
配置集群信息和日志路径还有data路径
3、启动
发现起不来,查看日志信息发现
4、配置myid
在你配置的data路径下
创建myid文件,记得每个节点id要不同
记得配置要分发给其他节点!!
三个重新启动发现就可以看可以了