windows中安装zookeeper
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等),用 Java 实现它们并给出示例代码。
ZooKeeper 是一个为分布式应用所设计的分布的、开源的协调服务。分布式的应用可以建立在同步、配置管理、分组和命名等服务的更高级别的实现的基础之上。 ZooKeeper 意欲设计一个易于编程的环境,它的文件系统使用我们所熟悉的目录树结构。 ZooKeeper 使用Java 所编写,但是支持 Java 和 C 两种编程语言。
众所周知,协调服务非常容易出错,但是却很难恢复正常,例如,协调服务很容易处于竞态以至于出现死锁。我们设计 ZooKeeper 的目的是为了减轻分布式应用程序所承担的协调任务。
ZooKeeper是一个高可用、高可靠的协同工作系统,分布式程序可以用ZooKeeper保存并更新关键共享状态。
zookeeper是针对分布式应用的分布式协作服务,它的目的就是为了减轻分布式应用从头开发协作服务的负担。
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护 和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协 调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。
zookeeper的下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/
下载好后的zookeeper解压到一个地方目录大概是这样的
F:\zookeeper-3.3.6 的目录
2014/09/16 17:04 <DIR> .
2014/09/16 17:04 <DIR> ..
2014/09/16 16:10 <DIR> bin
2012/07/29 14:23 59,687 build.xml
2012/07/29 14:23 52,566 CHANGES.txt
2014/09/16 17:06 <DIR> conf
2014/09/16 16:10 <DIR> contrib
2014/09/16 17:09 <DIR> data
2014/09/16 16:10 <DIR> dist-maven
2014/09/16 16:10 <DIR> docs
2012/07/29 14:23 2,415 ivy.xml
2012/07/29 14:23 1,932 ivysettings.xml
2014/09/16 16:10 <DIR> lib
2012/07/29 14:23 11,358 LICENSE.txt
2014/09/16 17:04 <DIR> log
2012/07/29 14:23 165 NOTICE.txt
2012/07/29 14:23 1,578 README.txt
2014/09/16 16:10 <DIR> recipes
2014/09/16 16:10 <DIR> src
2012/07/29 14:23 1,031,338 zookeeper-3.3.6.jar
2012/07/29 14:25 198 zookeeper-3.3.6.jar.asc
2012/07/29 14:23 33 zookeeper-3.3.6.jar.md5
2012/07/29 14:23 41 zookeeper-3.3.6.jar.sha1
11 个文件 1,161,311 字节
12 个目录 94,507,941,888 可用字节
进到conf目录下复制一个名字为zoo_sample.cfg的文件并修改名字为zoo.cfg
添加如下内容
# The number of milliseconds of each tick 维持心跳的时间间隔
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot isstored. 镜像数据位置
dataDir=F:\\zookeeper-3.3.6\\data
#日志位置
dataLogDir=F:\\zookeeper-3.3.6\\log
# the port at which the clients will connect 客户端连接的端口
clientPort=2181
这里简单的说明一下,这些配置只是做一个简单的测试并未做分布式处理
dataDir就是zookeeper的镜像数据位置,这个文件需要用户自行设置博主暂时将其放在zookeeper的子目录下的data文件中
dataLogDir就是zookeeper的日志记录位置,这个文件同样需要用户自行设置博主暂时将其放在zookeeper的子目录下log文件中
做完上面的这些后就可以启动zookeeper了启动的方式就是执行zookeeper/bin目录下的zkServer.cmd文件即可
启动完成后就可以重启一个命令窗口连接zookeeper了
连接zookeeper的命令同样是bin目录下的zkCli.sh –server 127.0.0.1:2182
连接成功后就可以输入相关的命令了
刚开始由于我们不知道输入什么命令zookeeper会给出一个help
connect host:port
get path [watch]
ls path [watch]
set path data [version]
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data
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
ls(查看当前节点数据),
ls2(查看当前节点数据并能看到更新次数等数据) ,
create(创建一个节点) ,
get(得到一个节点,包含数据和更新次数等数据),
set(修改节点)
delete(删除一个节点)
通过上述命令实践,我们可以发现,zookeeper使用了一个类似文件系统的树结构,数据可以挂在某个节点上,可以对这个节点进行删改。另外我们还发现,当改动一个节点的时候,集群中活着的机器都会更新到一致的数据。
zookeeper的数据模型
在简单使用了zookeeper之后,我们发现其数据模型有些像操作系统的文件结构,结构如下图所示
(1) 每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识,如/SERVER2节点的标识就为/APP3/SERVER2
(2) Znode可以有子znode,并且znode里可以存数据,但是EPHEMERAL类型的节点不能有子节点
(3) Znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本。
(4) znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和 服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了
(5) znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2
(6) znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等。
windows中安装zookeeper相关推荐
- 如何在Windows中安装Python?
如何在Windows中安装Python? 1. Python的安装 官网下载:https://www.python.org/downloads/windows/ 点开上面的链接,会发现有很多版本. 首 ...
- Windows中安装Apache2和PHP4权威指南
Apache 2和PHP是创建交互式网站的流行方案,而且成本很低.在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧. ...
- 在windows中安装python
如何在windows中安装python 1.下载python 2.安装python 3.测试python是否安装成功 在学习Python编程前,需要把Python安装到你的电脑里.安装后,你会得到Py ...
- 在Windows中安装OpenCV
在Windows中安装OpenCV 在Windows中安装OpenCV 使用预建库进行安装 使用git-bash(版本> = 2.14.1)和cmake(版本> = 3.9.1)进行安装 ...
- Windows中安装Emacs
为什么80%的码农都做不了架构师?>>> "在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神." 既然有人这么说 ...
- python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python
教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...
- Windows 中安装 MariaDB 数据库
mariadb 在 Windows 下的安装非常简单,下载程序双击运行就可以了. 需要注意: mariadb 和 MySQL 数据库在 Windows 下默认是不区分大小写的,但是在 Linux 下是 ...
- 在Windows中安装Anaconda、NumPy和Matplotlib软件包
虽然大部分Python软件包的安装都非常容易,只要通过pip就可以轻松完成,但是对于复杂的软件包却要显得复杂一些.在Python中有些软件包基于性能上的考虑,或者软件包本身是用其它高级语言写成的链接库 ...
- 在KVM上的Windows中安装Virtio驱动程序
在KVM上的Windows中安装Virtio驱动程序 2018年7月3日 Virtio驱动程序是KVM虚拟机的半虚拟化设备驱动程序. 半虚拟化驱动程序可提高机器性能,减少I / O延迟并将吞吐量提高到 ...
最新文章
- IPython 更改默认字体大小
- 函数调用,统计数中'2’的个数
- vm_comcat报错 - 数字或值错误 : 字符串缓冲区太小
- java两个和三个_Java语言基础(day_03)
- 743. 网络延迟时间
- 小米wifi每天晚上准时断网_小米 11再次确定,将于28日准时发布,售价更感人
- visual studio code怎么改成中文?Visual Studio Code Insiders for Mac中文修复版
- 哲理短文一则:揭示最好的成功法则
- input文本框的readonly和disabled属性区别
- Labview调用python
- extremeComponents资料
- matlab 读写excel数据 计算股票振幅收益率
- STM32的函数ssert_param(IS_GPIO_ALL_PERIPH(GPIOx));
- DataSourceClosedException: dataSource already closed
- 怎么在linux系统中输入日历,Linux命令行上如何使用日历详解
- c++ 统计指定字母开头单词的数量
- nacos安装配置和单机部署教程
- java安卓app开发教程_[Android教程] Cordova开发App入门(一)创建android项目
- 离线地图for SQLite
- Maven打包Resource资源文件损坏解决
热门文章
- 学习笔记(10):Python网络编程并发编程-粘包现象
- vc mysql_vc6.0连接mysql数据库
- Jupyter notebook 不安装主题,通过修改css更改 默认字体,字体大小等
- python自动登录教程_Python 实现自动登录+点击+滑动验证功能
- python函数参数类型及顺序_python函数参数类型及其顺序
- 第二章:用户登录管理模块
- 22Java之JDBCTemplate总结
- js获取单选按钮的值
- gradle各版本下载地址
- Material design 色彩