ZooKeeper分布式环境搭建

1.1 分布式安装部署
0.前置条件
jdk已经安装完成。
三台机器防火墙已经关闭。
1.集群规划
在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。
2.解压安装
(1)上传ZooKeeper安装包到hadoop102主机/opt/software目录下。这里还是使用CDH版本,具体包为zookeeper-3.4.5-cdh5.14.2.tar.gz。
(2)解压zookeeper安装包到/opt/install/目录下
[hadoop@hadoop102 software]$ tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/install/
(3)建立软连接
[hadoop@hadoop102 software]$ ln -s /opt/install/zookeeper-3.4.5-cdh5.14.2 /opt/install/zookeeper
(4)在/opt/install/zookeeper/这个目录下创建zkData
[hadoop@hadoop102 software]$ cd /opt/install/zookeeper
[hadoop@hadoop102 zookeeper]$ mkdir -p zkData
(5)重命名/opt/install/zookeeper/conf这个目录下的zoo_sample.cfg为zoo.cfg
[hadoop@hadoop102 zookeeper]$ cd /opt/install/zookeeper/conf
[hadoop@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg
3.配置zoo.cfg文件
(1)具体配置
[hadoop@hadoop102 conf]$ vi zoo.cfg
修改dataDir的值,配置为下面的值。
dataDir=/opt/install/zookeeper/zkData
在文件末尾增加如下配置。
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
参数含义解释如下。
Server.A=B:C:D。
A:一个数字,表示每个服务器编号,注意必须唯一。
B:服务器的ip地址,规划了几个机器作为ZooKeeper服务器,就有几行记录,每一个机器都对应一行。
C:是这个服务器与集群中的Leader服务器交换信息的端口;
D:如果集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
4.集群操作
(1)在dataDri指定的目录/opt/install/zookeeper/zkData下创建一个myid的文件
[hadoop@hadoop102 zkData]$ touch myid
(2)编辑myid文件
vi myid
在文件中添加与server对应的编号:如2。
(3)将配置好的zookeeper分发到其他机器上
[hadoop@hadoop102 ~]$ scp -r /opt/install/zookeeper/ hadoop@hadoop103:/opt/install/
[hadoop@hadoop102 ~]$ scp -r /opt/install/zookeeper/ hadoop@hadoop104:/opt/install/
并分别在hadoop103、hadoop104修改myid文件中内容为3、4。
(4)配置环境变量
在每一台机器上给zookeeper配置环境变量。
[hadoop@hadoop102 zookeeper]$ vi /etc/profile
添加如下配置。
export ZK_HOME=/opt/install/zookeeper
export PATH= Z K H O M E / b i n : ZK_HOME/bin: ZKHOME/bin:ZK_HOME/sbin: P A T H 让 配 置 文 件 生 效 。 [ h a d o o p @ h a d o o p 102 z o o k e e p e r ] PATH 让配置文件生效。 [hadoop@hadoop102 zookeeper] PATH[hadoop@hadoop102zookeeper] source /etc/profile
(5)分别启动zookeeper服务
[hadoop@hadoop102 ~]$ zkServer.sh start
[hadoop@hadoop103 ~]$ zkServer.sh start
[hadoop@hadoop104 ~]$ zkServer.sh start
(6)jps查看进程
[hadoop@hadoop102 ~]$ jps
3329 Jps
3311 QuorumPeerMain
(7)查看状态
[hadoop@hadoop102 ~]$ zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/…/conf/zoo.cfg
Mode: follower
[hadoop@hadoop103 ~]$ zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/…/conf/zoo.cfg
Mode: leader
[hadoop@hadoop104 ~]$ bin/zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/…/conf/zoo.cfg
Mode: follower
可以使用zkServer.sh stop关闭zookeeper服务。
1.2 配置参数解读(了解)
zoo.cfg 文件中几个参数含义如下。
1.tickTime:通信心跳数,ZooKeeper服务器心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
2.initLimit:LF初始通信时限
集群中的Follwer跟随者服务器与Leader领导者服务器(Leader)之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。投票选举新Leader的初始化时间,Follwer在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许Follwer在initLimit时间内完成这个工作。
3.syncLimit
LeaderFollwer同步通信时限
集群中Leader与Follwer之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。在运行过程中,Leader负责与ZooKeeper集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果Leader发出心跳包在syncLimit之后,还没有从Follwer那收到响应,那么就认为这个Follwer已经不在线了。
4.dataDir
数据文件目录+数据持久化路径
保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。
5.clientPort:
客户端连接端口
监听客户端连接的端口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值