zookeeper
- 概述
- 工作机制
- zookeeper特点
- 数据结构
- 统一命名服务
- 统一配置管理
- 统一集群管理
- 服务器动态上下线
- 软负载均衡
- zookeeper下载
- 下载 Linux 环境安装的 tar 包
- Zookeeper 本地安装
- (1)安装 JDK
- (2)拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下
- (3)解压到指定目录
- (4)修改名称
- 配置文件修改
- 采坑实录: 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
- zookeeper 启动时一直报 Starting zookeeper ... FAILED TO START
- 操作 Zookeeper
- 1.启动 Zookeeper服务端
- 2.查看状态
- 3.启动zookeeper客户端
- 4.退出客户端
- 5.停止 Zookeeper
- 配置参数解读
- 1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
- 2)initLimit = 10:LF初始通信时限
- 3)syncLimit = 5:LF同步通信时限
- 4)dataDir:保存Zookeeper中的数据
- 5)clientPort = 2181:客户端连接端口,通常不做修改。
概述
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。
工作机制
zookeeper特点
- Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
- 集群中只要有
半数以上节点存活
,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器
- 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的
- 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
- 数据更新原子性,一次数据更新要么成功,要么失败。
- 实时性,在一定时间范围内,Client能读到最新数据
数据结构
统一命名服务
Zookeeper可以把多台服务器的ip地址映射到同一个域名上
统一配置管理
统一集群管理
服务器动态上下线
软负载均衡
zookeeper下载
官网
zookeeper 3.5.7版本是较稳定版本
下载 Linux 环境安装的 tar 包
Zookeeper 本地安装
(1)安装 JDK
具体安装教程百度
代码语言:javascript复制大家可通过下面五条命令来查看linux 系统是否安装了java 环境
1、java -version
2、which java
3、rpm -qa |grep java
4、echo $PATH
5、find / -name java
(2)拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下
这里使用xftp进行传输
(3)解压到指定目录
我这里解压到了/opt目录下面的zookeeper文件夹中
代码语言:javascript复制解压指令:
tar -zxvf xxx.tar.gz -C 解压到的目录的路径 (否则会在当前路径下解压)
(4)修改名称
代码语言:javascript复制 mv apache-zookeeper-3.5.7 zookeeper-3.5.7
配置文件修改
首先来到zookeeper解压后文件底下的conf目录
(1)将zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
代码语言:javascript复制mv zoo_sample.cfg zoo.cfg
(2)打开 zoo.cfg 文件,修改 dataDir 路径
这里我选择在与conf同级目录下面新建一个zkData目录,用来替代默认的dataDir路径
采坑实录: 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
zookeeper 启动时一直报 Starting zookeeper … FAILED TO START
代码语言:javascript复制./zkServer.sh start-foreground
这样启动就知道错误原因了
错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
zookeeper 启动时一直报 Starting zookeeper … FAILED TO START
操作 Zookeeper
1.启动 Zookeeper服务端
先启动Zookeeper服务端,再启动Zookeeper客户端进行访问
来到bin目录下,执行命令:
代码语言:javascript复制./zkServer.sh start
查看进程是否启动,jps是java jdk里面的命令,一个查看当前java进程的小工具,
代码语言:javascript复制[atguigu@hadoop102 zookeeper-3.5.7]# jps
4020 Jps
4001 QuorumPeerMain
2.查看状态
代码语言:javascript复制./zkServer.sh status
3.启动zookeeper客户端
代码语言:javascript复制./zkCli.sh
4.退出客户端
代码语言:javascript复制quit
5.停止 Zookeeper
代码语言:javascript复制./zkServer.sh stop
配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
这里指客户端与服务端之间距离多长时间发送一次信号,检验当前连接是否还生效
当然服务端与服务端之间也可以发送信号,检验彼此存活状态
2)initLimit = 10:LF初始通信时限
这里的10指的是10此心跳,而每次心跳默认是2秒钟,因此这里如果20秒内还没连接成功,那么这次连接默认失败
3)syncLimit = 5:LF同步通信时限
4)dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。