Zookeeper之入门(原理、基础知识)

Zookeeper介绍

Zookeeper是分布式应用程序的协调服务框架,是Hadoop的重要组件。ZK要解决的问题:

1.分布式环境下的数据一致性。

2.分布式环境下的统一命名服务

3.分布式环境下的配置管理

4.分布式环境下的分布式锁

5.集群管理问题

 Zookeeper指令与数据结构

Zk数据结构

1.       ZK有一个最开始的节点

2.       ZK的节点叫做znode节点

3.       每个znode节点都可存储数据

4.       每个znode节点都可创建自己的子节点

5.       多个znode节点共同形成了znode树

6.       Znode树的维系实在内存中,目的是供用户快速的查询

7.       每个znode节点都是一个路径(通过路径来定位这个节点)

8.       每个路径名都是唯一的。

ZK指令


指令


示例


ls查看指令


ls /


create创建节点指令,注意,在创建节点时,要分配初始数据。


create /zk01

hello

create /zk02 ‘’


get查看节点数据指令

hello  数据

cZxid = 0x2

ctime = Mon May 15 05:58:32 PDT 2017创建节点的时间戳

mZxid = 0x2

mtime = Mon May 15 05:58:32 PDT 2017修改此节点数据的最新时间戳

pZxid = 0x2

cversion = 0

dataVersion = 0数据版本号,每当数据发生编号,版本号递增1

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 5数据大小

numChildren = 0子节点个数


get /zk01


set更新节点数据指令(执行后mtime、dataVersion可定会放生变化,dataLength可能会变化)


set /zk01 hellozk


delete删除节点


delete /zk01


create指令补充:

1.       创建子节点

2.       Zk节点分四种类型:分别是:

普通持久节点:

普通临时节点:创建此临时节点的客户端失去和zk连接后,此节点消失.zk是通过临时节点监控哪个服务器挂掉的。

顺序持久节点:会根据用户指定的节点路径,自动分配一个递增的顺序号。(顺序节点实现分布式锁的效果,服务器1抢到zk05分配zk050001,服务器2抢到zk05分配zk050002)

顺序临时节点:


1.       create /zk01/node01 hello

2.

2.1.create /zk01 hello

2.2. create –e /zk02 abc

2.3.create –s /zk03 abc

2.4.create –s -e /zk05 abcd

zk050000000003

再创建一个就是:

zk050000000004

原文地址:https://www.cnblogs.com/XiOrang/p/9643758.html

时间: 2024-08-30 06:22:10

Zookeeper之入门(原理、基础知识)的相关文章

Linux入门及基础知识

如果操作系统发展史出一部美国大片,那一定是三国硝烟的味道.上世界末的一群西方人,虽没有西部牛仔的放荡不羁,也成就了一段令后人难望其项背的历史.而且,身为Unix之父,Linux之父,计算机开源运动之父,Windows之父,无一例外,都还好好的活在这个他们亲眼见证的,不断发展壮大的信息技术时代. 1970年,美国Bell实验室的Ken Thompson为了玩游戏顺手写出的系统在其同事Dennis Ritch的帮忙开发下,已经颇具规模.73年,两人用 C语言重写该系统,不久该系统也有了自己真正的名字

001-权限原理基础知识

一.什么是权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包括用户认证和用户授权两部分. 二.用户认证 1.概念 用户认证,用户去访问系统,系统要验证用户身份的合法性.最常用的用户身份验证的方法:1.用户名密码方式.2.指纹打卡机.3.基于证书验证方法..系统验证用户身份合法,用户方可访问系统的资源. 2.用户认证流程 3.关键对象 subject:主体,理解为用户,可能是程序,都

scala入门-02基础知识->方法

首先在src下的main下的scala下创建一个包为org.scala.base 创建一个scala类名称为HelloWorld.scla 由于main方法要位于object对象中,所以我们创建一个object 名称为HelloWorld 并增加main方法和打印一行内容 接下来 我们在object对象中增加一个方法:printlnHello; PS: 1.函数体的最后一行的值就是整个函数的返回值 2.类型的申明是位于变量或者函数或者类的后面 另一种方式定义方法: 当方法or 函数是无参数时候,

vue快速入门~必备基础知识

和JQ完全操作dom不同,他是通过一些特殊的html语法,将dom和数据绑定,创建了这种绑定,DOM和数据保持同步,一更新数据,dom自动更新. vue.js是javascript MVVM库(model-view-ViewModel) ViewModel是vue.js核心,它是一个vue实例.vue实例作用在某个html元素上,可以是body,也可以是某个指定id的元素. vue.js可以实现双向绑定.双向绑定是什么呢?两个'向'分别是UI界面和js里的vue实例的data属性,改变其中的一个

React Native 入门基础知识总结

中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看看阮一峰老师的<ECMAScript 6 入门>这篇文章.里面涉及很多 ES6 的新特性.我之前也是看了阮老师的文章做了一些学习笔记 ES6 学习笔记. 1.环境搭建 环境搭建中文教程,点击跳转RN中文社区 :http://reactnative.cn/docs/0.40/getting-star

脱壳基础知识入门

现在加解密发展己形成2个分支了,一个就是传统的算法,另一个就是加密壳.越来越多的软件采用了密码学相关算法,现在要做出一个软件注册机己不象前几年那 么容易,这就要求解密者必须要有一定的数学功底和密码学知识,而这些在短时间内是不容易掌握的.除了密码学的应用,越来越多的软件加壳了,因此要求解密者 必须掌握一些脱壳技术,这就使得壳成了解密必须迈过的一个门槛.壳发展到今天,强度越来越高了,将许多人挡在门外,使得大家望壳兴叹.另外,论坛现在两极 分化比较严重,高手讨论的脱壳技术新手看不懂,很多人想学脱壳,但

加解密入门基础知识

很多人都想学习解密,这东西刚入门时会让人沉迷进去,可以饭不吃.觉不睡.出现这种现像,也许是解密满足了人们的猎奇心里吧.但掌握这方面技术,对自身的 提高确实有好处.可以通过跟踪软件,提高自己的调试技能,并且能了解他人程序思路,使自己写出更好的程序.研究解密技术有助于掌握一些系统底层知识,系统 底层知识绝对是构造起大型软件的坚实基础.许多程序发展,都经历了这一锻炼过程的. 而大多数人可能认为解密是一门高深的学问.造成这种原因是以前这方面 的技术资料缺乏,从而将“解密”这一技能“神”化了.初学者一般不

Java的入门基础知识

https://course.tianmaying.com/java-basic%2Bjava-environment#0 作者:David链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 这个教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界.万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的

大数据入门第一课 Hadoop基础知识与电商网站日志数据分析

var link="www.marenzy.top"//完整视频资源获取地址,复制链接在浏览器打开 var vx="aishangit666"//如链接失效可添加微信 本课程从Hadoop核心技术入手,以电商项目为依托,带领你从0基础开始上手,逐步掌握大数据核心技术(如:HDFS.YARN.MapReduce以及Hive),并使用这些技术进行实战,最终完成电商行为日志分析项目,让你轻松入门大数据! 物超所值的精品课程,只懂Java基础也能轻松入门大数据 知识覆盖全面

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024