01.ZooKeeper安装和介绍
1.ZooKeeper安装和启动
[lizhiwei@localhost ZooKeeper]$ tar -zxvf zookeeper-3.4.6
......
[lizhiwei@localhost ZooKeeper]$ ll
total 17292
drwxr-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]$ ll
total 1552
drwxr-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.txt
drwxr-xr-x. 2 lizhiwei lizhiwei 4096 Oct 19 00:52 conf
drwxr-xr-x. 10 lizhiwei lizhiwei 4096 Feb 20 2014 contrib
drwxr-xr-x. 2 lizhiwei lizhiwei 4096 Feb 20 2014 dist-maven
drwxr-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.xml
drwxr-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.txt
drwxr-xr-x. 5 lizhiwei lizhiwei 4096 Feb 20 2014 recipes
drwxr-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]$ ll
total 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=2000
dataDir=D:/devtools/zookeeper-3.2.2/build
clientPort=2181
#集群配置:
initLimit=5
syncLimit=2
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888
[lizhiwei@localhost zookeeper-3.4.6]$ cd bin/
[lizhiwei@localhost bin]$ ll
total 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.sh
JMX enabled by default
Using config: /home/lizhiwei/SoftWare/ZooKeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
[lizhiwei@localhost bin]$ ./zkServer.sh start
JMX enabled by default
Using config: /home/lizhiwei/SoftWare/ZooKeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[lizhiwei@localhost bin]$ ./zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181 ......
[zk: 127.0.0.1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
rmr path
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete 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 /zookeeper
cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 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的重要组件.它是一个为分布式应用 ...
随机推荐
- Graphics View框架
Qt4.2开始引入了Graphics View框架用来取代Qt3中的Canvas模块,并在很多地方作了改进,Graphics View框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞 ...
- ubuntu apt-get方式安装与卸载
在ubuntu终端中安装软件: 安装软件 apt-get install softname1 softname2 softname3……卸载软件 apt-get remove softname1 so ...
- <LeetCode OJ> 234. Palindrome Linked List
Total Accepted: 40445 Total Submissions: 148124 Difficulty: Easy Given a singly linked list, determi ...
- Selenium - 设置元素等待
一.sleep () 休眠方法 --time 固定等待 在开发自动化框架过程中,最忌讳使用Python自带模块的time的sleep方法进行等待,虽然可以自定义等待时间,但当网络条件良好时, 依旧 ...
- python模块之codecs: 自然语言编码转换
python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理. 有一点需要清楚的是,当python要做编码转换的时候,会借助于内部 ...
- dp之多重背包hdu1059
题意:价值为1,2,3,4,5,6. 分别有n[1],n[2],n[3],n[4],n[5],n[6]个.求能否找到满足价值刚好是所有的一半的方案. 思路:简单的多重背包,我建议多重背包都用二进制拆分 ...
- poj3693(后缀数组)
http://poj.org/problem?id=3693 题意:给出一串字符,需要求这串字符中的最长重复子串,要是有多个,输出字典序最小的......... 我自己的一些想法:这个思路我一开始倒是 ...
- 悦铃文件必须是CCITT A_Law格式的,且没有被压缩
最近在给公司弄来电彩铃,用的是电信的“悦铃”业务,办理过程不想多说了..给了我个网址和账号让我登录,登录界面惨不忍睹,感觉电信根本没有要宣传这项业务的意思,像是粗制滥造外包赶工做出来的.. 当然这不是 ...
- lua字符串对齐函数
最近要用到字符串对齐,开始只是一部分字符串,就直接加空格了,后来发现有很多, 于是写了个字符串对齐的函数. --功能:分割字符串 --参数:带分割字符串,分隔符 --返回:字符串表 function ...
- JavaBeans 官方文档学习
提示,重点:JavaBeans的Property和 Events:PropertyEditor极其注册和查找机制. 从目前来看,JavaBeans 更像是源自GUI的需求. 使用NetBeans新建一 ...