zookeeper系列学习(二)

环境搭建

一、搭建模式

安装方式有三种:单机模式、伪集群模式、集群模式。
■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
■ 伪集群模式:就是在一台服务器上运行多个Zookeeper 实例;
■ 集群模式:Zookeeper运行于多个集群上,适合生产环境

二、集群模式的搭建

工具:zookeeper安装包(关注微信公众号输入zookeeper即可获取)、三台服务器

第一步:上传解压压缩包

  tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/servers/

第二步:创建data与log目录

mkdir -p /opt/servers/zookeeper-3.4.14/data
mkdir -p /opt/servers/zookeeper-3.4.14/data/logs

第三步:修改配置文件

  mv /opt/servers/zookeeper-3.4.14/conf/zoo_sample.cfg zoo.cfg

  vi zoo.cfg

  #修改的内容如下

dataDir=/tmp/zookeeper
修改为 dataDir=/opt/servers/zookeeper-3.4.14/data
新增
dataLogDir=/opt/servers/zookeeper-3.4.14/data/logs

#ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时
#autopurge.purgeInterval=1 打开注释 autopurge.purgeInterval=1

#增加集群配置
##server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
server.1=linux01:2888:3888
server.2=linux02:2888:3888
server.3=linux03:2888:3888

 补充:Zookeeper中的配置文件zoo.cfg中参数含义解读如下

1tickTime =2000:通信心跳数,Zookeeper服务器客户端心跳时间,单位毫秒

  Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳时间单位为毫秒。

  它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)

2initLimit =10:LF初始通信时限

  集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。

3syncLimit =5LF同步通信时限

  集群中LeaderFollower之间的最大响应时间单位,假如响应超过syncLimit * tickTimeLeader认为Follwer死掉,从服务器列表中删除Follwer

4dataDir:数据文件目录+数据持久化路径

  主要用于保存Zookeeper中的数据。

5clientPort =2181:客户端连接端口

  监听客户端连接的端口

 

第四步:将安装包分发到集群节点上

  rsync-script /opt/servers/zookeeper-3.4.14/

第五步:根据集群中的配置,在每台服务器data下创建一个myid文件,并写入对应服务其ID

服务器1

  echo 1 > /opt/servers/zookeeper-3.4.14/data/myid

服务器2
  echo 2 > /opt/servers/zookeeper-3.4.14/data/myid
服务器3
  echo 3 > /opt/servers/zookeeper-3.4.14/data/myid

 第六步:进行验证

基本命令
启动:/opt/servers/zookeeper-3.4.14/bin/zkServer.sh start
查看状态:/opt/servers/zookeeper-3.4.14/bin/zkServer.sh status
停止:/opt/servers/zookeeper-3.4.14/bin/zkServer.sh stop

启动一个节点时查看状态时遇到错误,需要将所有节点启动
Error contacting service. It is probably not running.

启动正常时:(注:该节点是一个跟随者follower节点)

 

 

 补充:

创建一个集群启动停止的脚本 需要安装ssh免密登录

vi zk.sh

#!/bin/sh
echo "start zookeeper server..."
if(($#==0));then
echo "no params";
exit;
fi
hosts="linux01 linux02 linux03"
for host in $hosts
do
echo "======$host start====="
ssh $host "source /etc/profile; /opt/servers/zookeeper-3.4.14/bin/zkServer.sh $1"
echo "======$host end ======"
done

 

集群启动命令
sh zk.sh start
sh zk.sh status
sh zk.sh stop

    

 

posted @ 2020-11-12 22:29  程序员子期  阅读(40)  评论(0)    收藏  举报