ZooKeeper 初体验
安装Zookeeper
Mac OS
Mac 用户可以使用 Homebrew 安装和管理 Zookeeper 服务:
brew install zookeeper
配置文件地址在: /usr/local/etc/zookeeper。
启动 zookeeper 服务:
brew services start zookeeper
进入命令行客户端zkCli:
zkCli
默认连接localhost:2181
, 手动指定服务地址:
zkCli -server localhost:2181
Docker
可以使用官方提供的Docker镜像快速启动Zookeeper。
启动服务端:
docker run --name my_zookeeper -d zookeeper
ZNode 操作
使用终端工具ZkCli连接:
docker run -it --rm --link my_zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
命令行客户端 zkCli 可以交互式操作 Zookeeper, 其命令风格类似于 Unix 终端。
ls
查看某个路径包含的所有节点:
[zk: localhost:2181(CONNECTED) 1] ls /
[cluster, zookeeper, admin, config]
[zk: localhost:2181(CONNECTED) 2] ls /zookeeper
[quota]
ls2
查看某个路径包含的所有节点,以及节点元数据:
[zk: localhost:2181(CONNECTED) 7] ls2 /zookeeper
[quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
create
创建节点:
[zk: localhost:2181(CONNECTED) 0] create /test 1
Created /test
/test
为创建节点的路径,1
为Znode的数据data
。
create 命令无法递归创建节点,即/test节点不存在时不能直接创建/test/t1
使用-e
选项创建临时节点:
[zk: localhost:2181(CONNECTED) 0] create -e /test/t2 t2
Created /test/t2
[zk: localhost:2181(CONNECTED) 1] get /test/t2
t2
[zk: localhost:2181(CONNECTED) 2] quit
Quitting...
[zk: localhost:2181(CONNECTED) 0] get /test/t2
Node does not exist: /test/t2
退出zkCli后重新进入,临时节点已经消失。
get
获取节点数据与元数据:
[zk: localhost:2181(CONNECTED) 8] get /test
1
cZxid = 0x11d28
ctime = Sat Sep 01 16:04:08 CST 2018
mZxid = 0x11d28
mtime = Sat Sep 01 16:04:08 CST 2018
pZxid = 0x11d28
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
set
更改节点数据:
[zk: localhost:2181(CONNECTED) 9] set /test 2
cZxid = 0x11d28
ctime = Sat Sep 01 16:04:08 CST 2018
mZxid = 0x11d2a
mtime = Sat Sep 01 16:25:46 CST 2018
pZxid = 0x11d28
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
可以注意到版本号发生了变化。
delete
删除节点:
[zk: localhost:2181(CONNECTED) 2] delete /test
只能删除没有子节点的Znode,若要将子节点一同删除需使用rmr命令。
ZooKeeper 初体验的更多相关文章
- Zookeeper 初体验之——伪分布式安装(转)
原文地址: http://blog.csdn.net/salonzhou/article/details/47401069 简介 Apache Zookeeper 是由 Apache Hadoop 的 ...
- zookeeper初体验之关于解决quartz重复执行任务的一种思路
前阵子工作中遇到了一个很麻烦的问题.本人所在的项目组做了一个机遇quartz集群的任务系统.通俗点讲就是用quartz框架(quartz是一款能跑定时任务的框架支持复杂的时间表达式)来执行定时任务.但 ...
- Flume日志采集系统——初体验(Logstash对比版)
这两天看了一下Flume的开发文档,并且体验了下Flume的使用. 本文就从如下的几个方面讲述下我的使用心得: 初体验--与Logstash的对比 安装部署 启动教程 参数与实例分析 Flume初体验 ...
- Flume 实战(1) -- 初体验
前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...
- 【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验
----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafk ...
- 阿里 RPC 框架 DUBBO 初体验
最近研究了一下阿里开源的分布式RPC框架dubbo,楼主写了一个 demo,体验了一下dubbo的功能. 快速开始 实际上,dubbo的官方文档已经提供了如何使用这个RPC框架example代码,基于 ...
- RPC框架基础概念理解以及使用初体验
RPC:Remote Procedure Call(远程服务调用) RPC是做什么的 通过RPC框架机器A某个进程可以通过网络调用机器B上的进程方法,就像在本地上调用一样. RPC可以基于HTTP或者 ...
- dubbo实战之一:准备和初体验
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Dubbo基础一之实战初体验
本以为写这个小作文没什么难度的,可是好像并不是.前段时间重心放在驾考科目二,就想着小作文科二考过了再写也不是事,因为都实战过了.今天想着写却发现脑袋里啥都想不起来了,得翻项目和笔记回忆一下.所以还是那 ...
随机推荐
- 实践中 XunSearch(讯搜)的使用教程步骤
XunSearch(讯搜)的使用教程步骤 一.安装编译工具 yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql ...
- c# 自定义日期的时分秒
DateTime beginTime = DateTime.Now.Date; 2 Console.WriteLine(beginTime); DateTime endTime = , , ); Co ...
- Spring——事务
Spring事务 事务的ACID特性 原子性(Atomicity):在事务中的操作,要么都执行,要么都不执行! 一致性(Consistency):数据从一种状态,同时到达另一种状态. 持久性(Dura ...
- 从今天开始慢慢阅读java9源码决心的声明。
我从很早的时候就好奇java的源码了,因为有使用者就有制作者. 在校期间使用了java两年多的我却不知道java里面的任何东西. 这个寒假前我无意之间看到了java9出现的新闻,网上查询到原来源码就隐 ...
- node平台的安装与搭建
1.node.js 官网:https://nodejs.org/ (.org:是非盈利机构,他们的软件是不收费的,但是服务收费) 安装完以后的检测指令:node -v (在这里安装需要注意一 ...
- 冒泡排序 cpp实现
#include<bits/stdc++.h> using namespace std; void Bubblesort(int a[],int n){ ;i<n-;i++){ ; ...
- verilog HDL-参数型数据对像 与‘define
参数新数据对象是用来定义常量的,它可以提升verilog hdl代码的可读性和维护性. verilog hdl支持参数有两种,普通参数和局部参数.普通参数在模块例化时可以从新赋值,局部参数在模块例化时 ...
- Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals)
A 题意:给你人的坐标,钥匙的坐标,办公室的坐标.要求所有人能够拿到钥匙并且走到办公室的最短时间.一个位置只能有一个人,一个位置只有一把钥匙,人和钥匙可以在同一个位置. 思路:DP+贪心,dp[i]表 ...
- Ural 1966 Cycling Roads
================ Cycling Roads ================ Description When Vova was in Shenzhen, he rented a ...
- 手动模拟attach cinder volume的过程
我们首先启动一台机器,启动的时候attach一个volume 创建一个空的cinder volume root:~# cinder create --display-name emptyvolume1 ...