zookeeper使用之-容易命令

zookeeper使用之-简单命令
已经安装好了zookeeper我们开始使用zk的命令
假设我们已经启动了zk
//我使用启动一个客户端
./zkCli.sh -server 139.129.201.48:2181 start
//退出客户端的连接
quit

zk上的简单操作
ls /   //列出root下所有的znode节点
create /workers "" //创建一个workers节点
delete /workers   //删除一个workers节点

create -e /master "hotel.jd.com:2233" //创建一个临时的master节点
get /master //获得临时节点的信息
stat /master true

临时节点master的信息
zookeeper使用之-容易命令

znode可能由主进程子啊分配任务前创建,也可能由一个引导程序开始创建,不管这些是如何创建的,一旦这些节点存在了,主节点就需要见识这些子节点的变化
ls /master true //在主节点上调用stat命令前,通过参数true调用ls命令


创建一个从节点
create /worker ""
create /worker/worker.jd.com "worker1.jd.com:2244"

从节点现在已经准备就绪接收任务的分配

客户端角色
//客户端向系统中添加任务,假设就是请求从系统来运行cmd命令
create -s /tasks/task- "cmd"
ls /tasks/task-0000000000 true  //执行完成后会创建一个从节点来确定执行完成任务因此客户需要监视状态znode的创建事件
create /assign ""
[zk: 139.129.201.48:2181(CONNECTED) 23] create /assign/worker1.jd.com ""                
[zk: 139.129.201.48:2181(CONNECTED) 24] create /assign/worker1.jd.com/task-0000000000 ""
//从节点便开始检查新任务,并确认是否分配给自己
[zk: 139.129.201.48:2181(CONNECTED) 25] ls /assign/worker1.jd.com
//一旦从节点完成任务的执行,就会在tasks中添加一个状态znode,客户端接收到通知并检查执行
[zk: 139.129.201.48:2181(CONNECTED) 26] create /tasks/task-0000000000/status "done"
[zk: 139.129.201.48:2181(CONNECTED) 28] get /tasks/task-0000000000/status

客户端检查状态znode的信息,并确认任务的执行结果
[zk: 139.129.201.48:2181(CONNECTED) 29] get /tasks/task-0000000000
"cmd"
cZxid = 0x11
ctime = Tue Jan 10 14:55:46 CST 2017
mZxid = 0x11
mtime = Tue Jan 10 14:55:46 CST 2017
pZxid = 0x16
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 1
[zk: 139.129.201.48:2181(CONNECTED) 30] get /tasks/task-0000000000/status
"done"
cZxid = 0x16
ctime = Tue Jan 10 15:29:59 CST 2017
mZxid = 0x16
mtime = Tue Jan 10 15:29:59 CST 2017
pZxid = 0x16
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0