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的重要组件.它是一个为分布式应用 ...
随机推荐
- JEECG环境搭建(Maven版本)-总结Eclipse
1.安装sql server 数据库: 解决办法: 控制面板→程序和功能→启用或关闭Windows功能 .Net Framework 3.5这一项未被完全选中(应为对勾,如果是方块也不可以) 选中该项 ...
- java项目部署后的文件路径获取
//eclipse部署工程 String path = request.getServletContext().getRealPath( File.separator+ "WEB-INF&q ...
- uploadify onSelect
uploadify onSelect [return false]停止选择 $("#fileEleId").uploadify({ 'width': _option.width, ...
- scikit-learn:在实际项目中用到过的知识点(总结)
零.全部项目通用的: http://blog.csdn.net/mmc2015/article/details/46851245(数据集格式和预測器) http://blog.csdn.net/mmc ...
- 分享一个mysql 复杂查询的例子
发布:脚本学堂/MySQL 编辑:thebaby 2013-08-23 09:37:37 [大 中 小] 有关mysql复杂查询的一个例子,正在学习mysql的朋友,可以作为一个参考. 在my ...
- Redhat7 Mesos安装
$ sudo yum install -y tar wget git 1. 手工安装mavenwget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3 ...
- CShopDialog类
#ifndef SHOP_H #define SHOP_H #include "XWidget.h" #include "GameConfig.h" class ...
- js基本知识5
1.1 复习 1. 按钮不可用 disabled = “disabled” || true 2. setTimeout 只执行一次 setInterval 执行很多次 3. 递归调用 : 函数自己调用 ...
- Ubuntu打开core dump
输入ulimit -a 如果core file size为0,那就说明没有打开core dump,尽管你的程序crash的时候会显示core dumped,但实际上不会生成core file 输入ul ...
- 2015 Multi-University Training Contest 3 1002 RGCDQ
RGCDQ Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5317 Mean: 定义函数f(x)表示:x的不同素因子个数. 如:f ...