Zookeeper官网
目录
1 配置文件参数解读
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。
**(4)
dataDir
:数据文件目录+数据持久化路径**
主要用于保存 Zookeeper 中的数据。
**(5)
clientPort =2181
:客户端连接端口**
监听客户端连接的端口。
2 Zookeeper 单点安装
**(1)把软件包上传的 Linux 的
/opt/software
下**
**(2)解压 Zookeeper 到
/opt/module
下**
[huwei@hadoop101 ~]$ tar -zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
(3)将解压后的目录名称修改一下(选做)
[huwei@hadoop101 ~]$ cd /opt/module/
[huwei@hadoop101 module]$ mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7
**(4) 将 Zookeeper 的安装目录下
conf/zoo_sample.cfg
文件改名为
zoo.cfg
**
[huwei@hadoop101 module]$ cd zookeeper-3.5.7/conf/
[huwei@hadoop101 conf]$ mv zoo_sample.cfg zoo.cfg
(5) 在 Zookeeper 的安装目录下创建一个新的目录,作为 Zookeeper 的数据持久化目录
[huwei@hadoop101 conf]$ cd /opt/module/zookeeper-3.5.7/
[huwei@hadoop101 zookeeper-3.5.7]$ mkdir zkData
复制
zkData
的绝对路径以备用
[huwei@hadoop101 zookeeper-3.5.7]$ cd zkData/
[huwei@hadoop101 zkData]$ pwd/opt/module/zookeeper-3.5.7/zkData
**(6)修改
zoo.cfg
配置文件**
[huwei@hadoop101 zkData]$ cd ../conf/
[huwei@hadoop101 conf]$ vim zoo.cfg
将刚刚复制的
zkData
的绝对路径粘贴在下方位置处

ESC
,保存退出。:wq
(7)配置环境变量
[huwei@hadoop101 conf]$ sudo vim /etc/profile.d/my_env.sh
# ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使得环境变量生效
[huwei@hadoop101 conf]$ source /etc/profile
(8)启动 Zookeeper
启动 Zookeeper 服务端
[huwei@hadoop101 conf]$ cd ..[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh start
查看状态
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: standalone
启动 Zookeeper 客户端
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkCli.sh

Zookeeper 服务的默认端口号:
2181,不指定主机时默认连接本地,退出客户端命令:
quit
指定本机
hadoop101
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkCli.sh -server hadoop101:2181
查看一下 Zookeeper 的服务端和客户端对应的进程

(9)停止 Zookeeper
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh stop
3 Zookeeper 分布式安装
在 hadoop101、hadoop102 和 hadoop103 三个节点上部署Zookeeper。接下来,我将在我上述单点安装的基础上进行集群搭建。
注意:如果不是第一次搭建集群,那么就把 Zookeeper 安装目录下的 zkData目录删除,并且把 logs 目录也删除。
**(1)修改配置文件
zoo.cfg
**
增加如下配置
#######################cluster##########################
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888

ESC
,保存退出。:wq
配置参数
server.A=B:C:D解读
- A:是一个数字,表示这个是第几号服务器;
- B:是这个服务器的地址;
- C:是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
- D:是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
(2)配置服务器编号
在 Zookeeper 的安装目录的 zkData 目录下创建一个 myid 的文件,
[huwei@hadoop101 zookeeper-3.5.7]$ cd zkData/
[huwei@hadoop101 zkData]$ touch myid
编辑 myid 文件
[huwei@hadoop101 zkData]$ vim myid
在文件中添加与 server 对应的编号
1
那么现在 Zookeeper 分布式安装中的
hadoop101
就配置好了
**(3)将
hadoop101
整个 Zookeeper 的安装目录分发到其他机器**
这里我使用前面写好的分发脚本,具体参见 大数据技术学习笔记(三)—— Hadoop 的运行模式
[huwei@hadoop101 module]$ cd /opt/module/
[huwei@hadoop101 module]$ xsync zookeeper-3.5.7/
(4)在不同机器上修改 myid 文件中的值
(5)分发环境变量配置
[huwei@hadoop101 module]$ sudo xsync /etc/profile.d/my_env.sh
然后分别使得其他机器上的环境变量生效
[huwei@hadoop102 ~]$ source /etc/profile
[huwei@hadoop103 ~]$ source /etc/profile
(6)自定义群启群停 Zookeeper服务的脚本
[huwei@hadoop101 zookeeper-3.5.7]$ cd /home/huwei/bin
[huwei@hadoop101 bin]$ touch zk_cluster.sh
对该文件赋予执行权限
[huwei@hadoop101 bin]$ chmod 744 zk_cluster.sh
编写脚本内容
[huwei@hadoop101 bin]$ vim zk_cluster.sh
#!/bin/bash#检验参数if[ $# -lt 1 ]
then
echo'参数不能为空!!!'exit
fi
#循环遍历每一台机器,分别启动或者停止ZK服务for host in hadoop101 hadoop102 hadoop103
do
case $1 in
"start")echo"*****************start $host zookeeper****************"
ssh $host/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1;;"stop")echo"*****************stop $host zookeeper****************"
ssh $host/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1;;"status")echo"*****************status $host zookeeper****************"
ssh $host/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1;;*)echo'参数有误!!!'exit;;
esac
done
启动集群
[huwei@hadoop101 bin]$ zk_cluster.sh start
查看集群状态
[huwei@hadoop101 bin]$ zk_cluster.sh status
停止集群
[huwei@hadoop101 bin]$ zk_cluster.sh stop
版权归原作者 夏木夕 所有, 如有侵权,请联系我们删除。