Zookeeper有两种运行模式:集群模式和单机模式。
安装环境
1.系统环境
zk对不同系统环境支持都很好,在绝大多数主流的操作系统上都能够正常运行,如:GNU/linux、Sun Solaris、Win32以及MacOSX等。需要注意的是,Zookeeper官方文档中特别强调,由于FreeBSD系统的JVM对Java的NIO Selector支持得不是很好,所以不建议在该系统上部署生产环境的Zookeeper服务器。
由于当前只是演示,所以2种安装方式都在Win7上面进行。
2.Java环境
Java1.6或以上版本(建议下载Oracle官方发布的Java,下载地址是:http://www.java.com/download/)。
集群模式(伪)
现在,我们开始使用三台机器来搭建一个Zookeeper集群。由于没有多余的服务器,这里就将三个Zk都安装到本地机器上,故称谓伪集群模式更合适,伪集群模式只是便于开发、普通测试,不能用于生产环境。
1.下载Zookeeper安装包
建议去官方网站上下载稳定版本,地址:http://zookeeper.apache.org/releases.html
这里用到的是最新的3.4.8
2.配置文件zoo.cfg
将解压后的Zk复制三份到工作目录,如:
三份Zk的目录都在E:/zookeeper/zookeeper-3.4.8 - colony/ 下
然后需要将%ZK_HOME%/conf目录下的zoo_sample.cfg文件重命名为zoo.cfg,并且按照下面的方式简单配置:
tickTime=2000
dataDir=E:/zookeeper/zookeeper-3.4.8 - colony/zookeeper-1/tmp/zookeeper/
clientPort=2181
initLimit=10
syncLimit=5
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
zookeeper-1的zoo.cfg配置
tickTime=2000
dataDir=E:/zookeeper/zookeeper-3.4.8 - colony/zookeeper-2/tmp/zookeeper/
clientPort=2182
initLimit=10
syncLimit=5
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
zookeeper-2的zoo.cfg配置
tickTime=2000
dataDir=E:/zookeeper/zookeeper-3.4.8 - colony/zookeeper-3/tmp/zookeeper/
clientPort=2183
initLimit=10
syncLimit=5
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
zookeeper-3的zoo.cfg配置
关于zoo.cfg的配置,这里简单说明下:
a.在集群模式下,集群中每台机器都需要感知到整个集群是由哪几台机器组成的,在配置文件中,可以按照这样的格式进行配置,每一行都代表一个机器配置:server.id=host:port:port,
其中,id被称为 Server ID,用来标识该机器在集群中的机器序列号。同时,在每台Zookeeper机器上,我们都需要在数据目录(即dataDir参数指定的那个目录)下创建一个myid文件,该文件只有一行内容,并且是一个数字,即对应于每台机器的Server ID 数字。
b.在Zk的设计中,集群中所有机器上的zoo.cfg文件的内容都应该是一致的。因此最好使用svn或是git把此文件管理起来,确保每个机器都能共享到一份相同的配置。
c.上面也提到了,myid文件中只有一个数字,即一个Server ID。例如,server.1的myid文件内容就是"1"。注意,清确保每个服务器的myid文件中的数字不同,并且和自己所在机器的zoo.cfg中server.id=houst:port:port的id一致。另外,id的范围是1~255。
d.参数的意义:
tickTime:默认值为3000,单位是毫秒(ms),可以不配置。参数tickTime用于配置Zookeeper中最小时间单元的长度,很多运行时的时间间隔都是使用tickTime的倍数来表示的。例如,Zk中会话的最小超时时间默认是2*tickTime。
dataDir:该参数无默认值,必须配置。参数dataDir用于配置Zookeeper服务器存储快照文件的目录。
clientPort:参数clientPort用于配置当前服务器对外的服务端口,客户端会通过该端口和Zk服务器创建连接,一般设置为2181。
initLimit:该参数默认值:10,表示是参数tickTime值的10倍,必须配置,且为正整数。该参数用于配置Leader服务器等待Follower启动,并完成数据同步的时间。Follower服务器在启动过程中,会与Leader建立连接并完成对数据的同步,从而确定自己对外提高服务的起始状态。leader服务器允许Follower在initLimit时间内完成这个工作。
syncLimit:该参数默认值:5,表示是参数tickTime值的5倍,必须配置,且为正整数。该参数用于配置Leader服务器和Follower之间进行心跳检测的最大延时时间。在Zk集群运行的过程中,Leader服务器会与所有的Follower进行心跳检测来确定该服务器是否存活。如果Leader服务器在syncLimit时间内无法获取到Follower的心跳检测响应,那么Leader就会认为该Follower已经脱离了和自己的同步。
server.id:该参数无默认值,在单机模式下可以不配置。该参数用于配置组成Zk集群的机器列表,其中id即为Server ID,与每台服务器myid文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定Follower服务器与Leader进行运行时通信和数据同步时所使用的端口,第二个端口测专门用于进行Leader选举过程中的投票通信。
3.创建myid文件
在dataDir所配置的目录下,创建一个名为myid的文件,在该文件的第一行写上一个数字,和zoo.cfg中当前机器的编号对应上。即:
在E:\zookeeper\zookeeper-3.4.8 - colony\zookeeper-1\tmp\zookeeper\文件夹下创建值为"1"的myid文件。
在E:\zookeeper\zookeeper-3.4.8 - colony\zookeeper-2\tmp\zookeeper\文件夹下创建值为"2"的myid文件。
在E:\zookeeper\zookeeper-3.4.8 - colony\zookeeper-3\tmp\zookeeper\文件夹下创建值为"3"的myid文件。
4.启动服务器
至此,所有Zk都已经基本配置完毕,可以使用 %ZK_HOME%/bin 目录下的zkServer.cmd脚本进行服务器的启动了,如:
也可以之间双击zookeeper-*/bin/zkServer.cmd来之间启动。如果是linux,通过zkServer.sh start来启动。
刚启动第一个Zk时会不断报错,这是正常的,因为集群中其它的Zk还未起来,Zk集群之间的心跳检测未检测到其它Zk,等集群中所有的Zk都启动后,就不会报错了。
5.验证服务器
可以通过Zk提供的简易客户端来进行验证,双击下zookeeper-*/bin/zkCli.cmd来启动Zk简易客户端,或者通过命令zkCli.cmd -server 127.0.0.1:2181来启动,然后通过使用ls命名(列出Zk指定节点下的所有子节点)来验证Zk已经启动完成,如图:
单机模式
单机模式是一种特殊的集群模式而已----只有一台机器的集群,部署模式与集群模式步骤基本一致,只是在zoo.cfg文件的配置上有些差异。具体步骤如下:
1.配置文件zoo.cfg
将 %ZK_HOME%/conf 目录下的zoo_sample.cfg文件重命名为zoo.cfg,并且按照如下代码进行简单配置即可:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=E:/zookeeper/zookeeper-3.4.8 - standalone/tmp/zookeeper/
clientPort=2181
server.1=127.0.0.1:2888:3888
和集群模式唯一的区别就在机器列表上,在单机模式的zoo.cfg文件中,只有server.1这一项。修改玩这个文件后,就可以启动服务器了。
2.启动服务器(同上)
3.验证服务器(同上)
参考:https://blog.csdn.net/a906998248/article/details/50815031
相关推荐
集群版的安装配置步骤与单机版相似,但是需要额外配置集群之间的通信。 1. **复制安装包**:将Zookeeper的安装包解压并复制三份到`/usr/local/`目录下,例如`zookeeper01`、`zookeeper02`和`zookeeper03`。 2. **...
ZooKeeper Linux 集群搭建流程可以分为四步:下载和解压 ZooKeeper、创建目录和 myid 文件、修改 ZooKeeper 启动配置文件、启动 ZooKeeper 节点。通过这些步骤,可以成功搭建 ZooKeeper Linux 集群,满足分布式系统...
本文档详细介绍了如何在 Windows 系统下安装配置单机版和伪集群模式下的 ZooKeeper。 #### 二、准备工作 1. **下载 ZooKeeper 安装包**: - 本文使用的版本为 ZooKeeper 3.4.6。 - 最新版本可能为 3.5.0,但有...
为了方便用户进行开发,Zookeeper提供了Java与C两种语言的客户端。其中Java客户端是最常用的一种,也是本节主要讲解的对象。 #### 二、Zookeeper Java客户端配置与使用 ##### 1. 初始连接 Zookeeper Java客户端的...
Zookeeper 安装部署有两种运行模式:集群模式和单机模式。 单机环境安装 在单机环境中,我们可以使用单机部署。我们需要将 conf 目录下的 zoo_sample.cfg 文件 copy 一份重命名为 zoo.cfg,并修改 dataDir 目录,...
安装ZooKeeper有三种模式:单机模式、集群模式和集群伪分布模式。对于初学者,通常推荐从单机模式开始。首先,需要从Apache官网下载ZooKeeper的最新稳定版本,并确保系统已安装Java 6或更高版本。接着,设置环境变量...
总结起来,"Hadoop Zookeeper HBase集群"是大数据处理的一种架构,通过Hadoop进行数据存储和处理,利用Zookeeper进行集群管理和协调,以及借助HBase实现大规模数据的实时查询。理解和熟练掌握这三个组件的原理和使用...
在本项目中,"springboot-dubbo整合(单机版和集群版都测试通过)" 是一个核心主题,意味着开发者成功地将Spring Boot框架与Dubbo服务治理框架进行了集成,并且在两种模式下——单机版和集群版——进行了充分的测试,...
ZooKeeper的安装模式主要分为三种:单机模式、集群模式和集群伪分布模式。对于初次接触ZooKeeper的用户,推荐从单机模式或集群伪分布模式开始学习。 1. **单机模式**:适用于开发测试环境,是最简单的安装方式,仅...
Zookeeper提供了三种安装模式:单机模式、集群模式和集群伪分布模式。对于初学者,通常推荐从单机模式开始。 1. **单机模式** - 首先,从Apache官方网站下载Zookeeper的最新稳定版本。 - 安装需要Java环境,至少...
通常,Zookeeper会以单机模式或集群模式部署。安装步骤包括下载Zookeeper的安装包,解压,配置环境变量,修改配置文件如`zoo.cfg`,并启动Zookeeper服务。 接着,我们安装Kafka。同样,下载Kafka的压缩包,解压后...
ZAB 有两种基本模式:崩溃恢复模式和正常模式。在崩溃恢复模式中,ZooKeeper 会选举出一个新的 Leader,并同步集群中的状态。 11. ZooKeeper 的端口: ZooKeeper 的默认端口是 2181。 12. 创建 ZNode: 使用 ...
本文将详细介绍如何在三台虚拟机上安装配置Hadoop-0.20.205.0和HBase-0.90.5,包括单机模式和集群模式的安装配置流程。 #### 二、环境准备 首先,我们需要准备三台虚拟机,并安装CentOS-5.7操作系统。这三台虚拟机...
这里多说一句,附上两种导入文件的方法: 第一种(文件太大时最好别用): 安装上传下载文件组件:yum install lrzsz 上传下载文件:rz -be 第二种(推荐): 使用Xftp导入文件 准备工作: java环境(JDK1.7以上...
总结来说,Zookeeper 是一个强大且灵活的分布式协调服务,它的核心价值在于提供了一种高效且一致的方式来管理分布式环境中的共享数据和配置。在 CentOS 系统中安装 Zookeeper,需要遵循一定的步骤,包括下载、解压、...
ZooKeeper支持三种部署模式:单机模式、伪集群模式和集群模式。其中,集群模式提供最高可用性和容错性。 五、ZooKeeper应用实践 5.1 集群同步 通过ZNode的创建和更新,可以实现分布式系统中各个节点的同步状态,如...
在本文中,我们将深入探讨如何在Kubernetes集群中部署单机版的Apache Kafka和ZooKeeper,这两个组件是大数据处理和消息传递领域的关键组件。Kubernetes(简称K8s)作为一个自动化容器管理系统,使得在云环境中部署、...
Zab协议有两种模式:恢复模式和广播模式。 #### 四、Zookeeper 的部署 1. **单机部署**:适用于测试环境或小规模的应用场景。 2. **集群部署**:为了提高系统的可用性和容错能力,通常采用集群的方式部署Zookeeper...