前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Zookeeper系列(1):安装与介绍

Zookeeper系列(1):安装与介绍

作者头像
布禾
发布于 2021-04-27 08:08:20
发布于 2021-04-27 08:08:20
56800
代码可运行
举报
运行总次数:0
代码可运行
简介

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Zookeeper数据模型

Zookeeper数据模型的结构和Unix文件系统很类似,ZooKeeper中的每个节点都称为znode,znode默认能够存储1MB的数据,并且znode的路径是znode的唯一标识。

Zookeeper中的节点分为以下四种类型:

1.持久节点

  • 持久节点被创建后会一直存在,直到主动的删除这个节点。

2.持久顺序节点

  • 持久顺序节点具备持久节点的特性,并且持久顺序节点在创建时,Zookeeper会自动的在该节点名后添加一个数字后缀,这个数字后缀是有序的,由父节点维护。

3.临时节点

  • 临时节点类似于持久节点,区别在于在客户端会话断开时,该客户端创建的临时节点将被自动删除。并且临时节点下不能创建子节点。

4.临时顺序节点

  • 临时顺序节点类似于持久顺序节点,区别在于在客户端会话断开时,该客户端创建的临时顺序节点将被自动删除。并且临时顺序节点下不能创建子节点。
Linux安装Zookeeper

下载Zookeeper:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/
wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

解压缩:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz

创建数据存储目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /opt/zkdata

将config目录下的zoo_sample.cfg重命名为zoo.cfg:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mv zoo_sample.cfg zoo.cfg

修改zoo.cfg中的dataDir为上面创建数据存储目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dataDir=/opt/zkdata
启动Zookeeper

使用默认配置zoo.cfg启动Zookeeper:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh start

指定配置文件启动Zookeeper:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh start /opt/apache-zookeeper-3.6.3-bin/conf/zoo.cfg

使用jps查看Zookeeper是否已经启动:

QuorumPeerMain为Zookeeper进程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# jps
2201 QuorumPeerMain
2235 Jps
启动客户端连接到Zookeeper:

不指定server参数,默认连接到本地的Zookeeper(localhost:2181):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkCli.sh

指定IP地址和端口,连接Zookeeper:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkCli.sh -server localhost:2181
ZooKeeper服务器其他命令

在前台启动ZooKeeper服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh start-foreground

重启ZooKeeper服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh restart

停止ZooKeeper服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. /opt/apache-zookeeper-3.6.3-bin/bin/zkServer.sh stop
配置文件解析

zoo.cfg:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/opt/zkdata
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

tickTime:Zookeeper与客户端的心跳间隔时间(单位毫秒)。

initLimit:Zookeeper集群中Leader和Follower之间初始连接的最大心跳数量。

syncLimit:运行过程中Zookeeper集群中Leader和Follower之间的最大心跳数量。

dataDir:数据存储位置。

clientPort:监听客户端连接的端口,即客户端尝试连接的端口。

maxClientCnxns:最大并发连接数。

autopurge.snapRetainCount:指定dataDir中保留的快照数量。

autopurge.purgeInterval:清除任务的时间间隔(小时),设置为“0”表示禁用自动清除功能。

metricsProvider.className:设置为“org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider”以启用Prometheus.io导出器。

metricsProvider.httpPort:Prometheus.io导出器将启动Jetty服务器并绑定到该端口,默认为7000。

metricsProvider.exportJvmInfo:如果将此属性设置为true,则Prometheus.io将导出有关JVM的指标,默认值为true。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Zookeeper系列(4):搭建Zookeeper集群
假如集群只有两台服务器,那么其中任意一台服务器发生故障,集群就不可用了(集群中可用节点数量需要大于一半才可用),由于存在两个单点故障,因此两个服务器还不如单个服务器稳定。
布禾
2021/04/30
3.5K0
Zookeeper系列(4):搭建Zookeeper集群
安装zookeeper集群
[root@localhost local]#rz -E #上传jdk
用户10662715
2025/04/08
860
分布式学习十一:搭建zookeeper集群
之前发过一个单机部署教程,集群部署类似,这次我们通过docker-compse进行编排部署
仙士可
2022/03/13
3850
分布式学习十一:搭建zookeeper集群
Centos7 离线安装 zookeeper 并设置服务开机自启 实践笔记 自用
我使用centos7X64最小化安装 CentOS-7-x86_64-Minimal-1708 启动后状态
cookily
2021/12/07
1.6K0
Centos7 离线安装 zookeeper  并设置服务开机自启 实践笔记 自用
Zookeeper初识
•Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。
小炜同学
2022/09/23
3650
少年:ZooKeeper学一下
很多中间件,比如Kafka、Hadoop、HBase,都用到了 Zookeeper,于是很多人就会去了解这个 Zookeeper 到底是什么,为什么它在分布式系统里有着如此无可替代的地位。
sowhat1412
2020/11/05
5660
少年:ZooKeeper学一下
zookeeper集群搭建(centos7)
准备三个虚拟机: 192.168.101.15 bigdata01 192.168.101.14 bigdata02 192.168.101.17 bigdata03 注意:下边的步骤都是在bigdata01这个节点上进行的操作,除特殊说明外。 1、下载安装包 cd /data/soft # 下载zookeeper安装包 wget http://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.6.3-bin.tar.gz 2、解
高大北
2022/12/22
4300
快速学习-Zookeeper安装
1.安装前准备 (1)安装Jdk (2)拷贝Zookeeper安装包到Linux系统下 (3)解压到指定目录
cwl_java
2020/03/25
3200
Apache ZooKeeper - ZK的基本特性与节点&应用场景一览
zookeeper是一个分布式协调框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
小小工匠
2021/08/17
4470
精通Zookeeper:详解分布式集群部署全程,掌握数据一致性、选举机制与集群容错能力
本文具体介绍了如何配置Zookeeper集群,前面主要是一些理论知识,第五章是分布式集群安装的详细方法,跟着步骤来就可以了,关于Zookeeper的资料可以看这个资源
小白的大数据之旅
2024/11/20
5090
精通Zookeeper:详解分布式集群部署全程,掌握数据一致性、选举机制与集群容错能力
【愚公系列】2023年04月 Java教学课程 146-Zookeeper的基本使用
Zookeeper是一个分布式的、开源的分布式应用程序协调服务,为分布式应用提供一致性服务、配置维护、域名服务等。其作用主要包括管理和维护各个节点之间的协作关系,保证分布式集群的数据一致性和可靠性,并提供高效的数据读写能力和可扩展性。 它还可以用于共享配置信息、分布式锁服务等功能,是分布式计算的重要组件。
愚公搬代码
2023/04/21
4410
【愚公系列】2023年04月 Java教学课程 146-Zookeeper的基本使用
Zookeeper入门(一)
ZooKeeper是一个分布式开源的分布式应用协调服务。它公开了一组简单的原语,分布式应用程序可以在其基础上实现用于同步、配置维护以及分组和命名的更高级别服务。它的设计便于编程,并使用了一种熟悉的文件系统目录树结构样式的数据模型。它使用Java语言编写,并且有针对Java和C的客户端。
用户3587585
2022/09/21
6050
Zookeeper入门(一)
一步到位分布式开发Zookeeper实现集群管理
  说到分布式开发Zookeeper是必须了解和掌握的,分布式消息服务kafka 、hbase 到hadoop等分布式大数据处理都会用到Zookeeper,所以在此将Zookeeper作为基础来讲解。    Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等等。   Zookeeper 的核心是广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。   Zab协议有两种模
欢醉
2018/01/22
1.9K0
一步到位分布式开发Zookeeper实现集群管理
zookeeper的安装和使用
原文链接:https://foochane.cn/article/2019062601.html
foochane
2019/07/02
7800
SpringCloud----zookeeper介绍与安装
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。
大忽悠爱学习
2021/11/15
4070
ZooKeeper学习之集群搭建
1.2名字服务 名字服务这个就很好理解了。比如为了通过网络访问一个系统,我们得知道对方的 IP 地址,但是 IP 地址对人非常不友好,这个时候我们就需要使用域名来访问。但是计算机是 不能是域名的。怎么办呢?如果我们每台机器里都备有一份域名到 IP 地址的映射,这个倒 是能解决一部分问题,但是如果域名对应的 IP 发生变化了又该怎么办呢?于是我们有了 DNS 这个东西。我们只需要访问一个大家熟知的(known)的点,它就会告诉你这个域名对应 的 IP 是什么。在我们的应用中也会存在很多这类问题,特别是在我们的服务特别多的时候, 如果我们在本地保存服务的地址的时候将非常不方便,但是如果我们只需要访问一个大家都 熟知的访问点,这里提供统一的入口,那么维护起来将方便得多了。
Arebirth
2019/09/24
4750
ZooKeeper学习之集群搭建
Zookeeper:在三种模式下的部署
Zookeeper 官网地址: http://zookeeper.apache.org/
栗筝i
2022/12/02
4280
探索:从入门到放弃之Zookeeper3.6.0
目前zookeeper的版本是3.6.0,同时增加了几个新特性,同时拥抱了Prometheus.
公众号: 云原生生态圈
2021/11/15
1.2K0
【ZooKeeper系列】1.ZooKeeper单机版、伪集群和集群环境搭建
ZooKeeper官网下载地址:http://zookeeper.apache.org/releases.html#download
猿人谷
2020/06/19
1.4K0
Zookeeper安装以及基本服务开启关闭操作指令和配置参数解读
 将/opt/module/zookeeper-3.4.10/conf这个路径下的zoo_sample.cfg修改为zoo.cfg;
一个风轻云淡
2022/11/13
4080
Zookeeper安装以及基本服务开启关闭操作指令和配置参数解读
相关推荐
Zookeeper系列(4):搭建Zookeeper集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验