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

来源:互联网 发布:python写淘宝秒杀脚本 编辑:程序博客网 时间:2024/06/05 18:38

第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

[root@node1 ~]# zkCli.shConnecting to localhost:21812017-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 GMT2017-07-08 04:30:45,312 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=node12017-07-08 04:30:45,312 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_1122017-07-08 04:30:45,315 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation2017-07-08 04:30:45,320 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/jdk1.8.0_112/jre2017-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/lib2017-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/lib2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp2017-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=Linux2017-07-08 04:30:45,321 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd642017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-514.el7.x86_642017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root2017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root2017-07-08 04:30:45,322 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/root2017-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@506c589e2017-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 enabled2017-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 session2017-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 = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: localhost:2181(CONNECTED) 0]  

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

[zk: localhost:2181(CONNECTED) 0] helpZooKeeper -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] 

查看当前节点列表

[zk: localhost:2181(CONNECTED) 1] ls /[zookeeper]

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

[zk: localhost:2181(CONNECTED) 2] create /test myDataCreated /test[zk: localhost:2181(CONNECTED) 3] ls /[zookeeper, test]

使用get 命令来查看znode

[zk: localhost:2181(CONNECTED) 4] get /testmyDatacZxid = 0x200000008ctime = Sat Jul 08 04:43:08 EDT 2017mZxid = 0x200000008mtime = Sat Jul 08 04:43:08 EDT 2017pZxid = 0x200000008cversion = 0dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 6numChildren = 0[zk: localhost:2181(CONNECTED) 5] 

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

[zk: localhost:2181(CONNECTED) 5] set /test testDemocZxid = 0x200000008ctime = Sat Jul 08 04:43:08 EDT 2017mZxid = 0x200000009mtime = Sat Jul 08 04:46:35 EDT 2017pZxid = 0x200000008cversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 8numChildren = 0[zk: localhost:2181(CONNECTED) 6] get /test           testDemocZxid = 0x200000008ctime = Sat Jul 08 04:43:08 EDT 2017mZxid = 0x20000000bmtime = Sat Jul 08 04:47:12 EDT 2017pZxid = 0x200000008cversion = 0dataVersion = 3aclVersion = 0ephemeralOwner = 0x0dataLength = 8numChildren = 0[zk: localhost:2181(CONNECTED) 7] 

创建子目录

[zk: localhost:2181(CONNECTED) 7] create /test/node1 node1Created /test/node1[zk: localhost:2181(CONNECTED) 8] ls /test                [node1][zk: localhost:2181(CONNECTED) 9] 

删除刚才创建的 znode

[zk: localhost:2181(CONNECTED) 9] delete /test/node1[zk: localhost:2181(CONNECTED) 10] ls /test[]

退出命令

[zk: localhost:2181(CONNECTED) 11] quitQuitting...2017-07-08 04:50:40,834 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x15d214ff93a0003 closed2017-07-08 04:50:40,837 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x15d214ff93a0003[root@node1 ~]# 
阅读全文
0 0
原创粉丝点击