01.ZooKeeper安装和介绍
1.ZooKeeper安装和启动
[lizhiwei@localhost ZooKeeper]$ tar -zxvf zookeeper-3.4.6......[lizhiwei@localhost ZooKeeper]$ lltotal 17292drwxr-xr-x. 10 lizhiwei lizhiwei 4096 Feb 20 2014 zookeeper-3.4.6-rwxrwxr-x. 1 lizhiwei lizhiwei 17699306 Sep 13 23:25 zookeeper-3.4.6.tar.gz[lizhiwei@localhost ZooKeeper]$ cd zookeeper-3.4.6[lizhiwei@localhost zookeeper-3.4.6]$ lltotal 1552drwxr-xr-x. 2 lizhiwei lizhiwei 4096 Oct 19 00:56 bin-rw-rw-r--. 1 lizhiwei lizhiwei 82446 Feb 20 2014 build.xml-rw-rw-r--. 1 lizhiwei lizhiwei 80776 Feb 20 2014 CHANGES.txtdrwxr-xr-x. 2 lizhiwei lizhiwei 4096 Oct 19 00:52 confdrwxr-xr-x. 10 lizhiwei lizhiwei 4096 Feb 20 2014 contribdrwxr-xr-x. 2 lizhiwei lizhiwei 4096 Feb 20 2014 dist-mavendrwxr-xr-x. 6 lizhiwei lizhiwei 4096 Feb 20 2014 docs-rw-rw-r--. 1 lizhiwei lizhiwei 1953 Feb 20 2014 ivysettings.xml-rw-rw-r--. 1 lizhiwei lizhiwei 3375 Feb 20 2014 ivy.xmldrwxr-xr-x. 4 lizhiwei lizhiwei 4096 Feb 20 2014 lib-rw-rw-r--. 1 lizhiwei lizhiwei 11358 Feb 20 2014 LICENSE.txt-rw-rw-r--. 1 lizhiwei lizhiwei 170 Feb 20 2014 NOTICE.txt-rw-rw-r--. 1 lizhiwei lizhiwei 1770 Feb 20 2014 README_packaging.txt-rw-rw-r--. 1 lizhiwei lizhiwei 1585 Feb 20 2014 README.txtdrwxr-xr-x. 5 lizhiwei lizhiwei 4096 Feb 20 2014 recipesdrwxr-xr-x. 8 lizhiwei lizhiwei 4096 Feb 20 2014 src-rw-rw-r--. 1 lizhiwei lizhiwei 1340305 Feb 20 2014 zookeeper-3.4.6.jar-rw-rw-r--. 1 lizhiwei lizhiwei 836 Feb 20 2014 zookeeper-3.4.6.jar.asc-rw-rw-r--. 1 lizhiwei lizhiwei 33 Feb 20 2014 zookeeper-3.4.6.jar.md5-rw-rw-r--. 1 lizhiwei lizhiwei 41 Feb 20 2014 zookeeper-3.4.6.jar.sha12
[lizhiwei@localhost zookeeper-3.4.6]$ cd conf/[lizhiwei@localhost conf]$ lltotal 16-rw-rw-r--. 1 lizhiwei lizhiwei 535 Feb 20 2014 configuration.xsl-rw-rw-r--. 1 lizhiwei lizhiwei 2161 Feb 20 2014 log4j.properties-rw-rw-r--. 1 lizhiwei lizhiwei 922 Oct 19 00:52 zoo.cfg-rw-rw-r--. 1 lizhiwei lizhiwei 922 Feb 20 2014 zoo_sample.cfg
#这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime=2000#顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。dataDir=/tmp/zookeeper#这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。clientPort=2181#这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,#而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。#当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,#那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒initLimit=10#这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒syncLimit=5#这个操作将限制连接到 ZooKeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。此配置选项可以用来阻止某些类别的 Dos 攻击。将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制。maxClientCnxns=60#这个参数指定了需要保留事务日志和快照文件的数目。默认是保留3个。autopurge.snapRetainCount=3#ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时,#需要配置一个1或更大的整数,默认是0,表示不开启自动清理功能,但可以运行bin/zkCleanup.sh来手动清理zk日志autopurge.purgeInterval=1
#单机配置:tickTime=2000dataDir=D:/devtools/zookeeper-3.2.2/buildclientPort=2181#集群配置:initLimit=5syncLimit=2server.1=192.168.211.1:2888:3888server.2=192.168.211.2:2888:3888
[lizhiwei@localhost zookeeper-3.4.6]$ cd bin/[lizhiwei@localhost bin]$ lltotal 44-rwxr-xr-x. 1 lizhiwei lizhiwei 238 Feb 20 2014 README.txt-rwxr-xr-x. 1 lizhiwei lizhiwei 1937 Feb 20 2014 zkCleanup.sh-rwxr-xr-x. 1 lizhiwei lizhiwei 1049 Feb 20 2014 zkCli.cmd-rwxr-xr-x. 1 lizhiwei lizhiwei 1534 Feb 20 2014 zkCli.sh-rwxr-xr-x. 1 lizhiwei lizhiwei 1333 Feb 20 2014 zkEnv.cmd-rwxr-xr-x. 1 lizhiwei lizhiwei 2696 Feb 20 2014 zkEnv.sh-rwxr-xr-x. 1 lizhiwei lizhiwei 1084 Feb 20 2014 zkServer.cmd-rwxr-xr-x. 1 lizhiwei lizhiwei 5742 Feb 20 2014 zkServer.sh
[lizhiwei@localhost bin]$ ./zkServer.shJMX enabled by defaultUsing config: /home/lizhiwei/SoftWare/ZooKeeper/zookeeper-3.4.6/bin/../conf/zoo.cfgUsage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}[lizhiwei@localhost bin]$ ./zkServer.sh startJMX enabled by defaultUsing config: /home/lizhiwei/SoftWare/ZooKeeper/zookeeper-3.4.6/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
[lizhiwei@localhost bin]$ ./zkCli.sh -server 127.0.0.1:2181Connecting to 127.0.0.1:2181 ......[zk: 127.0.0.1:2181(CONNECTED) 0] helpZooKeeper -server host:port cmd argsconnect host:portget path [watch]ls path [watch]set path data [version]rmr pathdelquota [-n|-b] pathquitprintwatches on|offcreate [-s] [-e] path data aclstat path [watch]closels2 path [watch]historylistquota pathsetAcl path aclgetAcl pathsync pathredo cmdnoaddauth scheme authdelete path [version]setquota -n|-b val path[zk: 127.0.0.1:2181(CONNECTED) 1] ls /[testRootPath, zookeeper][zk: 127.0.0.1:2181(CONNECTED) 2] get /zookeepercZxid = 0x0ctime = Wed Dec 31 16:00:00 PST 1969mZxid = 0x0mtime = Wed Dec 31 16:00:00 PST 1969pZxid = 0x0cversion = -1dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 0numChildren = 1[zk: 127.0.0.1:2181(CONNECTED) 3]
2.ZooKeeper数据模型

- 每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1
- znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL 类型的目录节点不能有子节点目录
- znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据
- znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了
- znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2
- znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍
3.ZooKeeper的应用场景

- 客户端可以连接到每个server,每个server的数据完全相同。
- 每个follower都和leader有连接,接受leader的数据更新操作。
- Server记录事务日志和快照到持久存储。
- 大多数server可用,整体服务就可用。
- 顺序一致性:按照客户端发送请求的顺序更新数据。
- 原子性:更新要么成功,要么失败,不会出现部分更新。
- 单一性 :无论客户端连接哪个server,都会看到同一个视图。
- 可靠性:一旦数据更新成功,将一直保持,直到新的更新。
- 及时性:客户端会在一个确定的时间内得到最新的数据。
- 统一命名服务
- 配置管理
- 集群管理
- 共享锁
- 队列管理




01.ZooKeeper安装和介绍的更多相关文章
- 01 Memcached 安装与介绍
一:Memcached 介绍 ()官网网址:www.mamcached.org () 主要功能是:高性能,分布式的内存对象缓存系统. ()Nosql不仅仅是关系型数据库,显著特点key value ...
- maven(01)--安装及其介绍
1:下载maven windows下载 2:将下载文件夹解压,然后放在一个安装目录(可任意选择),例如就放在D盘的根目录 然后在设置环境变量,新建一个环境变量,名称为M2_HOME,其设置值为mave ...
- Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用
https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...
- 【ZooKeeper】ZooKeeper安装及简单操作
ZooKeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一 ...
- zookeeper 安装的三种模式
Zookeeper安装 zookeeper的安装分为三种模式:单机模式.集群模式和伪集群模式. 单机模式 首先,从Apache官网下载一个Zookeeper稳定版本,本次教程采用的是zookeeper ...
- Zookeeper安装以及配置说明(三)
Zookeeper的安装和配置非常的简单,既可以配置成单机模式,也可以配置成集群模式.如下图所示: 下面将分别进行介绍: 单机模式 下载最新稳定版本zookeeper的安装包之后(看第一篇博文), 解 ...
- zookeeper安装与集群搭建
此处以centos系统下zookeeper安装为例,详细步骤可参考官网文档:zookeeper教程 一.单节点部署 1.下载zookeeper wget http://mirrors.hust.edu ...
- Cloudera Manager (centos)安装详细介绍
文章全部来自:Cloudera Manager (centos)安装详细介绍http://www.aboutyun.com/thread-9190-1-1.html(出处: about云开发) 这里已 ...
- Zookeeper安装和部署
Zookeeper安装和部署:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用 ...
随机推荐
- 在ubuntu下安装free pascal
1.ubuntu16.04版本已经集成了free pascal最新的3.0版,只需要安装就可以了. sudo apt install fp-compiler 在ubuntu里面,fp-compiler ...
- [svc]influxdb+grafana实战-各省份api访问成功率统计
简单说下需求: 统计各个省份的 3大运营商的接口访问成功率,绘图展示 数据格式 {"mobile" : "15812345608", "provinc ...
- 一款基于jQuery和HTML5全屏焦点图
今天爱编程小编给大家分享一款非常绚丽的jQuery焦点图插件,同时这款焦点图也利用了HTML5和CSS3的相关特性,使图片切换效果更加丰富多彩.另外,这款jQuery焦点图插件的特点是全屏的效果,因此 ...
- EF调用存储过程、函数
一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题 说这个问题前 首先先说下 我使用ef4.1 codefirst的目的. 是因为可 ...
- DRBD(Distributed Replicated Block Device) 分布式块设备复制 进行集群高可用方案
DRBD是一个用软件实现的.无共享的.服务器之间镜像块设备内容的存储复制解决方案. 外文名 DRBD drbdadm 高级管理工具 drbdsetup 置装载进kernel的DRBD模块 drbdme ...
- android monkey app乱点测试
Monkey是Android中的一个命令行工具 查看包名:查看电脑中某一位置的apk文件的包名:PC打开CMD-进入TMG目录-运行设备--查看包名aapt dump badging *.apk(ap ...
- URLDecoder: Incomplete trailing escape (%) pattern问题处理
http://blog.csdn.net/yangbobo1992/article/details/10076335 _________________________________________ ...
- 关于VS2013的安装遇到的问题
老师突然说实验一需要用代码实现,我之前配置的cocos的编程环境是cocos+VS2013,是很稳定的 但是,我安装unity5.5的时候,不小心选择了顺带安装了VS2015,就等于我电脑里面有了两个 ...
- import是page指令的一个属性。
以下不属于JSP的标准指令的是.(选择1项) A.Taglib B.Include C.Import D.Page 解答:C
- java--Struts中请求的过程
一个请求在Struts2框架中的处理步骤: a) 客户端初始化一个指向Servlet容器的请求: b) 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤 ...