zookeeper的精华

最近,经理让每个小组成员做技术分享,我领到的任务是zookeeper,特此记录。

一、 zookeeper的来源

分布式的产生——分布式数据一致性问题。(分布式节点越多,越难达到一致性)

Zookeeper产生的目的 :就是解决分布式数据一致性的问题。

eg:Hadoop安装的时候,namenode也存在单点故障的问题,namenode可以配置多个,只有一个active的,剩下的都是standby的。standby可以无缝衔接active,保证集群正常运行,数据不丢失。

如果standby想要无缝连接,必须实时和active元数据保持一致。

那如何保持呢?定期拷贝?不可能!会出现数据延迟或者丢失的问题。

最好出现一个第三方平台,这个平台就是解决数据同步问题——zookeeper就做这样的事情。

二、 zookeeper是什么?

是一个分布式的、开放源码的分布式应用程序协调服务,是Google的chubby的一个开源的实现。

它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如分布式同步、配置管理、集群管理、集群管理、队列管理。

三、 zookeeper的安装

有三种模式:

单机模式(在自己windows电脑上)

集群模式(有真实的几台电脑集群)

伪集群模式(在虚拟机上)

安装步骤:http://www.cnblogs.com/jxwch/p/6433310.html

/conf/zoo.cfg文件  配置文件

命令:

启动:zkServer.sh start

停止:zkServer.sh stop

查看状态:zkServer.sh status

四、 zookeeper的总体架构

主从结构(选举机制)

主——leader

从——follower

//todo

五、 zookeeper的文件系统

两个核心:文件系统,监听机制

1) 文件系统

1. Zookeeper的文件系统类似于Linux,根节点是/

2. Zookeeper的文件系统的寻址只能通过绝对路径,不能通过相对路径。从根目录开始(所有的选址)eg: get /new03

3. linux下的路径可能有文件,可能是目录。

但是在zookeeper中不存在文件,也不存在目录,

但是既有文件的功能(存东西),又有目录的功能(有路径),叫znode。

它既不是文件,又不是目录,但是两者的功能都有了。

4. znode的分类:

按照生命周期:可以分为持久的znode和临时的znode。

二者的区别:临时节点在当前会话结束时,自动删除;持久节点只有用户手动删除才能被删除。

按有无编号:

可以分为4种:

持久无编号节点;

持久有编号节点;

临时无编号节点;

临时有编号节点。

注意:

1.“有编号”的编号是由父节点维护的,同一个父节点维护的编号会顺序增加,只要在相同的父节点下创建子节点,不管这个节点有无编号,都会顺序增加编号(只是无编号的不显示而已)

2.有编号的可以反复创建同名节点,每次都会自动添加一个顺序的编号。无编号的节点只能创建一次。

5. 临时节点不能有子节点。

有子节点的节点一定是持久节点;

没有子节点的节点可能是永久节点,也可能是临时节点.

6. 有几个zookeeper节点,数据就会保存几份,但是这几份数据是完全一样的。

eg;Master,Slave1,Slave2这三台机器上的zk数据是完全一样的。

7. 每个znode上存储的数据最大不要超过1M,最好不要超过1kb。

原因:

1. znode上存储的数据量越大,一致性越难维护(网络)。

2. 理论上只存储核心数据就可以了,znode的一般存储状态信息0和1。

8. znode上可以添加监听

监听添加的地方——znode上

监听:监测znode的状态(一举一动),包括数据改变/节点添加删除

2) 监听机制

监听就是对数据进行监控,zookeeper的监听对象是znode,会对znode的数据变化添加监听。通过监听机制,监听文件系统的数据变化(包括数据内容的变化/文件结果的变化)

监听事件:

nodeDataChanged  节点数据(内容)的改变

nodeCreate 节点创建事件

nodeDelete      节点删除事件

nodeChildrenChanged  子节点变化事件

用户对哪个节点的数据变化感兴趣,那么就在这个节点上添加监听(注册监听),一旦数据发生改变就会触发监听。

注册监听:

Ls : 显示子节点:子节点的变化(创建,删除)

get/getData : 监听节点数据内容:节点数据内容发生改变

exist

触发监听:

create

delete

set path data

六、zookeeper的shell

Ls /

Rmr path

Delete path

Stat path

Get path

Create [-e] [-s] znode节点 内容

-s:序号 sequential

-e:临时的 epherneral

七、zookeeper的api

在eclipse中安装zookeeper的可视化插件 zookeeper eclipse plugins 可以在help中下载

并导入zookeeper的jar包

public class TestZooConnection {

public static void main(String[] args) throws IOException {

ZooKeeper zk = new ZooKeeper("Master:2181", 5000, null);

System.out.println(zk);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容