前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Hadoop基础教程-第8章 Zookeeper(8.5 Zookeeper内存数据库)

Hadoop基础教程-第8章 Zookeeper(8.5 Zookeeper内存数据库)

作者头像
程裕强
发布于 2022-05-06 10:51:46
发布于 2022-05-06 10:51:46
36300
代码可运行
举报
运行总次数:0
代码可运行

第8章 Zookeeper

8.5 Zookeeper内存数据库

8.5.2 内存数据库介绍

ZooKeeper的数据模型是一棵树,而从使用角度看, Zookeeper就像一个内存数据库一样。在这个内存数据库中,存储了整棵树的内容,包括所有的节点路径、节点数据及其ACL信息等,Zookeeper会定时将这个数据存储到磁盘上。 Zookeeper内存数据库是通过ZKDatabase类实现, 内部属性包括dataTree,sessionsWithTimeouts,snapLog,commitedLog。

DateTree是整个zookeeper内存数据库的核心,代表了内存中一份完整的数据;

数据模型和层次命名空间 ZooKeeper提供的名称空间与标准文件系统类似。名称是以斜杠(/)分隔的路径元素序列。ZooKeeper的名称空间中的每个节点都由路径标识。

8.5.2 zkCli.sh命令

连接本地zookeeper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node1 ~]# zkCli.sh
Connecting to localhost:2181
2017-07-08 04:30:45,293 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
2017-07-08 04:30:45,312 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=node1
2017-07-08 04:30:45,312 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_112
2017-07-08 04:30:45,315 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2017-07-08 04:30:45,320 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/jdk1.8.0_112/jre
2017-07-08 04:30:45,320 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper-3.4.10/bin/../build/classes:/opt/zookeeper-3.4.10/bin/../build/lib/*.jar:/opt/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/opt/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.10/bin/../conf:.::/opt/jdk1.8.0_112/lib
2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-514.el7.x86_64
2017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/root
2017-07-08 04:30:45,324 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@506c589e
2017-07-08 04:30:45,401 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2017-07-08 04:30:45,627 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2017-07-08 04:30:45,663 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x15d214ff93a0002, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]  

输入help查看所有支持的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port
[zk: localhost:2181(CONNECTED) 1] 

查看当前节点列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]

创建一个新的 znode,使用 create /test myData 。这个命令创建了一个新的 znode 节点“test ”以及与它关联的字符串myData:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 2] create /test myData
Created /test
[zk: localhost:2181(CONNECTED) 3] ls /
[zookeeper, test]

使用get 命令来查看znode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 4] get /test
myData
cZxid = 0x200000008
ctime = Sat Jul 08 04:43:08 EDT 2017
mZxid = 0x200000008
mtime = Sat Jul 08 04:43:08 EDT 2017
pZxid = 0x200000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
[zk: localhost:2181(CONNECTED) 5] 

通过 set 命令来对 zk 所关联的字符串进行设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 5] set /test testDemo
cZxid = 0x200000008
ctime = Sat Jul 08 04:43:08 EDT 2017
mZxid = 0x200000009
mtime = Sat Jul 08 04:46:35 EDT 2017
pZxid = 0x200000008
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
[zk: localhost:2181(CONNECTED) 6] get /test           
testDemo
cZxid = 0x200000008
ctime = Sat Jul 08 04:43:08 EDT 2017
mZxid = 0x20000000b
mtime = Sat Jul 08 04:47:12 EDT 2017
pZxid = 0x200000008
cversion = 0
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
[zk: localhost:2181(CONNECTED) 7] 

创建子目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 7] create /test/node1 node1
Created /test/node1
[zk: localhost:2181(CONNECTED) 8] ls /test                
[node1]
[zk: localhost:2181(CONNECTED) 9] 

删除刚才创建的 znode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 9] delete /test/node1
[zk: localhost:2181(CONNECTED) 10] ls /test
[]

退出命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zk: localhost:2181(CONNECTED) 11] quit
Quitting...
2017-07-08 04:50:40,834 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x15d214ff93a0003 closed
2017-07-08 04:50:40,837 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x15d214ff93a0003
[root@node1 ~]# 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop基础教程-第9章 HA高可用(9.4 YARN 高可用)(草稿)
该文介绍了如何利用Zookeeper实现分布式锁,并给出了具体的示例。Zookeeper作为一个可靠的、一致性分布式协调服务,被广泛应用于分布式系统中。通过Zookeeper,应用可以在分布式环境中实现一致性的逻辑单元,从而保证分布式系统中数据的一致性和可靠性。
程裕强
2018/01/02
8920
Hadoop基础教程-第9章 HA高可用(9.4 YARN 高可用)(草稿)
Hadoop基础教程-第9章 HA高可用(9.3 HDFS 高可用运行)(草稿)
程裕强
2018/01/02
1.3K0
Hadoop基础教程-第9章 HA高可用(9.3 HDFS 高可用运行)(草稿)
搭建Kafka集群( 2.8.0版本)之一
Kafka最新版本2.8.0可以不依赖zookeeper,但是仍然测试阶段,所以官方不推荐使用,因此还是要使用zookeeper集群。
程裕强
2021/09/08
1.3K0
CentOs7.3 搭建 ZooKeeper-3.4.9 单机服务
概述 zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其作为研发Hadoop时的副产品。由于分布式系统中一致性处理较为困难,其他的分布式系统没有必要 费劲重复造轮子,故随后的分布式系统中大量应用了zookeeper,以至于zookeeper成为了各种分布式系统的基础组件,其地位之重要,可想而知。著名的hadoop,kafka,dubbo 都是基于zookeeper而构建。 要想理解zookeeper到底是做啥的,那首先得理解清楚,什么是一致性? 所谓的一致性,实际上就是围绕着“
程序员鹏磊
2018/02/09
8750
CentOs7.3 搭建 ZooKeeper-3.4.9 Cluster 集群服务
CentOs7.3 搭建 ZooKeeper-3.4.9 Cluster 集群服务 Zookeeper 概述 zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其作为研发Hadoop时的副产品。由于分布式系统中一致性处理较为困难,其他的分布式系统没有必要 费劲重复造轮子,故随后的分布式系统中大量应用了zookeeper,以至于zookeeper成为了各种分布式系统的基础组件,其地位之重要,可想而知。著名的hadoop,kafka,dubbo 都是基于zookeeper而构建。 要
程序员鹏磊
2018/02/09
7610
ZooKeeper 基础3
使用 bin/zkCli.sh -server 127.0.0.1:2181 进行连接
franket
2022/03/25
2170
ZooKeeper伪分布式集群安装及使用
ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。
星哥玩云
2022/07/04
3970
一脸懵逼学习HBase的搭建(注意HBase的版本)
本文介绍了如何使用HBase和Zookeeper实现分布式协调,并总结了HBase和Zookeeper的主要概念和命令。
别先生
2018/01/02
2.1K0
一脸懵逼学习HBase的搭建(注意HBase的版本)
搭建zookeeper集群
下载zookeeper-3.4.14.tar.gz 使用xshell的rz命令或者xftp工具将zookeeper-3.4.14.tar.gz压缩文件上传到三台主机的 /opt 目录下 解压 zookeeper-3.4.14.tar.gz tar -zxvf zookeeper-3.4.14.tar.gz 切换到zookeeper-3.4.14目录,创建data和log文件夹【三台机器都要创建】 cd zookeeper-3.4.14 mkdir data log #####################
暖月寒星
2020/03/10
5540
ZooKeeper 集群2
查看状态 [root@h101 zk]# zookeeper-3.4.6.2/bin/zkServer.sh status JMX enabled by default Using config: /root/zk/zookeeper-3.4.6.2/bin/../conf/zoo.cfg Mode: follower [root@h101 zk]# zookeeper-3.4.6.1/bin/zkServer.sh status JMX enabled by default Using config:
franket
2022/03/25
2440
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解
ZooKeeper可以独立搭建集群,HBase本身不能独立搭建集群需要和Hadoop和HDFS整合。
星哥玩云
2022/07/13
4900
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解
ZooKeeper 集群7
服务状态 [root@h101 zk]# zookeeper-3.4.6-real/bin/zkServer.sh status JMX enabled by default Using config: /root/zk/zookeeper-3.4.6-real/bin/../conf/zoo.cfg Mode: follower [root@h101 zk]# ---------- [root@h102 zookeeper-3.4.6-real]# zookeeper-3.4.6-real/bin/zk
franket
2022/03/25
2540
storm集群部署
机子配置信息 操作系统:CentOS release 6.5 (Final) cpu:Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz 内存:32G 磁盘大小:1.5T storm 软件包 apache-storm-1.0.0.tar.gz Python 版本 Centos 6.5 系统自带有如下版本 Python,满足 storm 部署的要求 Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 JDK storm1.0.0 官方要求 JDK1.7 及以上,本次实验使用 JDK1.8 java version "1.8.0_91" zookeeper 版本 zookeeper-3.4.9.tar.gz
用户3148308
2018/09/13
1.7K0
ZooKeeper学习第三期---Zookeeper命令操作
Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向Zookeeper提交相应的命令。Zookeeper常用的四字命令见下图所示。
用户5640963
2019/07/26
1K0
ZooKeeper学习第三期---Zookeeper命令操作
快速开始Zookeeper 转
Zookeeper是一个高性能的分布式应用协调服务的框架。Zookeeper=Zoo+keeper,中文直译是动物园的看守者。
wuweixiang
2018/08/14
3030
Zookeeper03之客户端命令操作
  前面两篇文章给大家介绍了zookeeper的集群搭建,本篇文章来介绍下zookeeper的客户端命令操作
用户4919348
2019/04/02
9880
Zookeeper03之客户端命令操作
从Zookeeper 到 Elastic Job 的原理解析和使用(一)
想必大家都对分布式系统有所耳闻,大部分人对分布式都能侃侃而谈,但到了真正实施的时候,才发现其中的不易。今天带大家一起了解一款开源软件,ZooKeeper。它通过一些简单好用的API,来解决分布式系统设计与开发中的难点。
MickyInvQ
2020/09/27
1.4K0
从Zookeeper 到 Elastic Job 的原理解析和使用(一)
一脸懵逼搭建Zookeeper分布式集群
本文介绍了如何利用Zookeeper实现分布式锁,并详细阐述了Zookeeper实现分布式锁的机制和原理。同时,本文还提供了一种基于Zookeeper的分布式锁实现示例,以帮助读者更好地理解和应用分布式锁。
别先生
2018/01/02
8880
一脸懵逼搭建Zookeeper分布式集群
Centos6下zookeeper集群部署记录
ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 Zookeeper设计目的 最终一致性:client不论
洗尽了浮华
2018/01/23
7310
Centos6下zookeeper集群部署记录
第六章 zookeeper 原理,安装步骤,数据同步演示
Zookeeper是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。
全栈程序员站长
2022/08/05
8940
第六章 zookeeper 原理,安装步骤,数据同步演示
相关推荐
Hadoop基础教程-第9章 HA高可用(9.4 YARN 高可用)(草稿)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验