①安装前准备
(1)安装Jdk(略)
(2)拷贝Zookeeper安装包到Linux系统下
[root@hadoop101 softwares]# cd /export/softwares/ [root@hadoop101 softwares]# rz -E |
(3)解压到指定目录
[root@hadoop101 softwares]# tar -zxvf zookeeper-3.4.10.tar.gz -C /export/servers/ |
(4)修改zookeeper的名称为zookeeper
[root@hadoop101 softwares]# cd /export/servers/ [root@hadoop101 softwares]# mv zookeeper-3.4.10 zookeeper |
留意bin目录下的是可执行文件,包括zkServer(服务端)、zkCli(客户端)、zkEnv(环境)、zkCleanup(清理)。
②配置修改
(1)将/export/software/zookeeper/conf这个路径下的zoo_sample.cfg拷贝一份并改名为zoo.cfg;
[root@hadoop101 softwares]# cd zookeeper/conf/ [root@hadoop101 conf]# cp zoo_sample.cfg zoo.cfg |
(2)打开zoo.cfg文件,修改dataDir路径:
[root@hadoop101 conf]# vim zoo.cfg |
修改如下内容:
dataDir=/export/servers/zookeeper/zkData |
(3)在/eport/servers/zookeeper/这个目录上创建zkData文件夹
[root@hadoop101 zookeeper]# mkdir zkData |
③操作Zookeeper
(1)启动Zookeeper
[root@hadoop101 zookeeper]# bin/zkServer.sh start |
PS. 三台终端的zookeeper需要逐个启动,不要通过send commands to all sessions一起启动,不然会有问题。
(2)查看进程是否启动
[root@hadoop101 zookeeper]# jps |
需要确保出现QuorumPeerMain进程。这个是Zookeeper进程的名字。
(3)查看状态:
[root@hadoop101 zookeeper]# bin/zkServer.sh status |
确保出现standalone。
这个东西的配置相对hadoop简单太多了。
(4)启动客户端:
[root@hadoop101 zookeeper]# bin/zkCli.sh |
(5)退出客户端:
[zk: localhost:2181(CONNECTED) 0] quit |
(6)停止Zookeeper
[root@hadoop101 zookeeper]# bin/zkServer.sh stop |
2、配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
(1)tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
(2)initLimit =10:LF初始通信时限
集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
(3)syncLimit =5:LF同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
注意前面3个不需要修改。
(4)dataDir:数据文件目录+数据持久化路径
主要用于保存Zookeeper中的数据。(这个需要修改)
(5)clientPort =2181:客户端连接端口
监听客户端连接的端口。(这个想改就改)
另外,如果想要配置集群,还需要在该配置文件后面加上
server.1=hadoop111:2888:3888 server.2=hadoop112:2888:3888 server.3=hadoop113:2888:3888 |
就是把集群中所有的服务器贴上去。另外:
2888是通信端口号(注意2181是与客户端通信,这个不要混淆)
3888是选举端口号。配置中不分主从,主从是通过选举选出来的。3888是选举交流的端口号。
前面的1、2、3是给3台机器每个一个ID。在集群内部有一个辨识的ID。随便起,只要不相同就行。