一、本地模式安装部署
- 安装前准备
安装Jdk
拷贝zookeeper安装包到Linux系统下
解压到指定目录
[jh@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/
- 配置修改
将/opt/module/zookeeper-3.4.10/conf 这个路径下的 zoo_sample.cfg修改为zoo.cfg
[jh@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg
编辑zoo.cfg文件,修改dataDir路径:
[jh@hadoop102 zookeeper-3.4.10]$ vim zoo.cfg
dataDir=/opt/module/zookeeper-3.4.10/zkData
在/opt/module/zookeeper-3.4.10/这个目录上创建zkData文件夹
[jh@hadoop102 zookeeper-3.4.10]$ mkdir zkData
- 操作Zookeeper
启动zookeeper
[jh@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start
查看进程是否启动
[jh@hadoop102 zookeeper-3.4.10]$ jps
4020 Jps
4001 QuorumPeerMain
查看状态:
[jinghang@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
启动客户端:
[jinghang@hadoop102 zookeeper-3.4.10]$ bin/zkCli.sh
退出客户端:
[zk: localhost:2181(CONNECTED) 0] quit
停止Zookeeper
[jinghang@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh stop
-
zookeeper中的配置文件zoo.cfg中参数含义解读如下:
- tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime) - initLimit =10:leader和follower 初始通信时限,集群中的 follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的zookeeper服务器连接到Leader的时限。
- syncLimit =5:leader和follower 同步通信时限 ,集群中Leader与follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为follwer死掉,从服务器列表中删除Follwer。
- dataDir:数据文件目录+数据持久化路径 主要用于保存zookeeper中的数据。
- clientPort =2181:客户端连接端口 监听客户端连接的端口。
- tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
二、分布式安装部署
zookeeper 集群搭建指的是 zooKeeper 分布式模式安装,通常由 2n+l台 servers 组成。这是因为为了保证 Leader 选举(基于Paxos 算法的实现)能过得到多数的支持,所以 zookeeper集群的数量一般为奇数。 zookeeper运行需要 java环境,所以需要提前安装jdk。对于安装leader+follower 模式的集群,大致过程如下:
- 集群规划
在hadoop102、hadoop103和hadoop104三个节点上部署zookeeper。 - 解压安装
解压zookeeper安装包到/opt/module/目录下
[jh@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/
- 配置服务器编号
在/opt/module/zookeeper-3.4.10/这个目录下创建zkData
[jh@hadoop102 zookeeper-3.4.10]$ mkdir -p zkData
在/opt/module/zookeeper-3.4.10/zkData 目录下创建一个myid的文件
[jh@hadoop102 zkData]$ touch myid
编辑myid文件
[jh@hadoop102 zkData]$ vi myid
在文件中添加与server对应的编号:
2
拷贝配置好的zookeeper到其他机器上
[jh@hadoop102 zkData