当前位置:首页 > 服务端 > ZooKeeper系列一:史上的最强安装与配置详解

ZooKeeper系列一:史上的最强安装与配置详解

2022年11月06日 08:56:10服务端10

本文摘选自互联网, 经整理后,应该是史上最强入门篇之一了  :)

ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。

ZooKeeper 单机模式的安装相对比较简单,如果第一次接触ZooKeeper的话,建议安装ZooKeeper单机模式或者集群伪分布模式。

ZooKeeper也支持windows, 安装步骤大致相同, 解压完并配置即可运行, 安装包解压后bin目录里, 你会发现有windows和linux的启动脚本,

 

一:安装环境要求:

1:需要 JAVA6 以上的版本,可以从 SUN 官网上下载,并对JAVA 环境变量进行设置,cmd或shell 里 java --version需有内容出现

2:ZooKeeper 安装

首先,从Apache官方网站下载一个ZooKeeper 的最近稳定版本。

 

作为国内用户来说,选择最近的的源文件服务器所在地,能够节省不少的时间。

http://labs.renren.com/apache-mirror//hadoop/zookeeper/

linux系统,为了今后操作的方便,我们需要对 ZooKeeper 的环境变量进行配置,

 

方法如下,在 /etc/profile 文件中加入如下的内容:

#Set ZooKeeper Enviroment

export ZOOKEEPER_HOME=/root/hadoop-0.20.2/zookeeper-3.3.1

export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

 

二:ZooKeeper不同模式的相关配置

1)单机模式

ZooKeeper 服务器包含在单个 JAR 文件中,安装此服务需要用户创建一个配置文档,并对其进行设置。我们在 ZooKeeper-*.*.* 目录(我们以当前 ZooKeeper 的最新版 3.3.1 为例,故此下面的“ ZooKeeper-*.*.* ”都将写为“ ZooKeeper-3.3.1” )的 conf 文件夹下创建一个 zoo.cfg 文件,它包含如下的内容:

 

tickTime=2000
dataDir=/var/zookeeper/data
dataLogDir = /var/zookeeper/log
clientPort=2181

 

在这个文件中,我们需要指定 dataDir 的值,它指向了一个目录,这个目录在开始的时候需要为空。下面是每个参数的含义:

  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
  • dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
  • dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录
  • clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

使用单机模式时用户需要注意:这种配置方式下没有 ZooKeeper 副本,所以如果 ZooKeeper 服务器出现故障, ZooKeeper 服务将会停止。

 

以下代码清单 A 是我们的根据自身情况所设置的 zookeeper 配置文档: zoo.cfg

单机模式配置代码清单 A : zoo.cfg

tickTime=2000
dataDir=/var/zookeeper/data
dataLogDir=/var/zookeeper/log

clientPort=2181

 

2)集群模式

为了获得可靠的 ZooKeeper 服务,用户应该在一个集群上部署 ZooKeeper 。只要集群上大多数的ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可用的。另外,最好使用奇数台机器。 如果 zookeeper拥有 5 台机器,那么它就能处理 2 台机器的故障了。

之后的操作和单机模式的安装类似,我们同样需要对 JAVA 环境进行设置,下载最新的 ZooKeeper 稳定版本并配置相应的环境变量。不同之处在于每台机器上 conf/zoo.cfg 。

 

 我们在拥有三台机器的 Hadoop 集群上测试使用 ZooKeeper 服务,下面代码清单 B 是我们根据自身情况所设置的 ZooKeeper 配置文档:

 代码清单 B : zoo.cfg

tickTime=2000
dataDir=/var/zookeeper/data
dataLogDir=/var/zookeeper/log

# the port at which the clients will connect
clientPort=2181
initLimit=5 
syncLimit=2

server.1=IP1:2887:3887 server.2=IP2:2888:3888 server.3=IP3:2889:3889
 
    

 

server.A=B:C:D (server.id=host:port:port)
A是一个数字,表示这个是第几号服务器,B是这个服务器的ip地址
C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口
D是在leader挂掉时专门用来进行选举leader所用

指示了不同的 ZooKeeper 服务器的自身标识,作为集群的一部分的机器应该知道 ensemble 中的其它机器。用户可以从“ server.id=host:port:port. ”中读取相关的信息。 在服务器的 data( dataDir 参数所指定的目录)目录下创建一个文件名为 myid 的文件,这个文件中仅含有一行的内容,指定的是自身的 id 值。比如,服务器“ 1 ”应该在 myid 文件中写入“ 1 ”。这个 id 值必须是 ensemble 中唯一的,且大小在 1 到 255 之间

清单中的 IP 分别对应的配置分布式 ZooKeeper 的 IP 地址。当然,也可以通过机器名访问 zookeeper ,但是需要在ubuntu 的 hosts 环境中进行设置。读者可以查阅 Ubuntu 以及 Linux 的相关资料进行设置。

 

3)集群伪分布

简单来说,集群伪分布模式就是在单机下模拟集群的ZooKeeper服务, 即单机起多个实例

那么,如何对配置 ZooKeeper 的集群伪分布模式呢?其实很简单,在 zookeeper 配置文档中, clientPort参数用来设置客户端连接 zookeeper 的端口。 server.1=IP1:2887:3887 中, IP1 指示的是组成 ZooKeeper 服务的机器 IP 地址, 2887 为用来进行 leader 选举的端口, 3887 为组成 ZooKeeper 服务的机器之间通信的端口。集群伪分布模式我们使用每个配置文档模拟一台机器,也就是说,需要在单台机器上运行多个 zookeeper 实例。但是,我们必须要保证各个配置文档的 clientPort 不能冲突。

下面是我们所配置的集群伪分布模式,通过 zoo1.cfg , zoo2.cfg , zoo3.cfg 模拟了三台机器的 ZooKeeper集群,

从下面三个代码清单中可以看到,除了 clientPort 不同之外, dataDir、dataLogDir 也不同另外,不要忘记在 dataDir 所对应的目录中创建 myid 文件来指定对应的 zookeeper 服务器实例

 

代码清单C :

 zoo1.cfg :

 
     
tickTime=2000 dataDir=/var/zookeeper/data/d_1
dataLogDir=/var/zookeeper/log/d_1
clientPort=2181
 
     
initLimit=5
syncLimit=2
server.
1=localhost:2887:3887
server.
2=localhost:2888:3888
server.
3=localhost:2889:3889

 

zoo2.cfg :

tickTime=2000
dataDir=/var/zookeeper/data/d_2
dataLogDir=/var/zookeeper/log/d_2
clientPort=2182
initLimit=10 
syncLimit=5

server.
1=localhost:2887:3887
server.
2=localhost:2888:3888
server.
3=localhost:2889:3889

 

zoo3.cfg :

tickTime=2000
dataDir=/var/zookeeper/data/d_3
dataLogDir=/var/zookeeper/log/d_3
clientPort=2183 
initLimit=10
syncLimit=5

server.
1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889

 

 

如何启用多实例

windows 单机启用多实例:

修改 zkServer.cmd 文件在里面加入

set ZOOCFG=..\conf\zoo1.cfg  这行,另存为  zkServer-1.cmd

set ZOOCFG=..\conf\zoo2.cfg  这行,另存为  zkServer-2.cmd

set ZOOCFG=..\conf\zoo3.cfg  这行,另存为  zkServer-3.cmd...  再分别运行

 

linux 单机启用多实例:

方法一:对zookeeper整个安装目录, 复制出3个副本并做相关配置, 有点low但是不容易头晕,详细请见:https://www.cnblogs.com/likemebee/p/7891300.html

方法二:

./zkServer.sh start ../conf/zoo1.cfg

./zkServer.sh start ../conf/zoo2.cfg

./zkServer.sh start ../conf/zoo3.cfg

 

常用zkServer.sh脚本,如下:

  • 启动ZK服务: sh bin/zkServer.sh start
  • 查看ZK服务状态: sh bin/zkServer.sh status
  • 停止ZK服务: sh bin/zkServer.sh stop
  • 重启ZK服务: sh bin/zkServer.sh restart

 

转载于:https://www.cnblogs.com/appledady/p/9329585.html

作者:Zjg13835813856
来源链接:https://blog.csdn.net/zjg13835813856/article/details/102101833/

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68123.html

标签: ZooKeeper
分享给朋友:

“ZooKeeper系列一:史上的最强安装与配置详解” 的相关文章

springcloud zookeeper+gateway

springcloud zookeeper+gateway

搭建springcloud项目的时候以 zookeeper为注册中心  gateway为路由 启动时出现以下报错:   ********************************************************** Sprin...

安装zookeeper及kafka集群

安装zookeeper及kafka集群

安装zookeeper及kafka集群 搭建zookeeper 不废话直接开始,请提前准备好镜像或者拉取新版本镜像 # 拉取镜像 docker pull wurstmeister/zookeeper docker pull wurstm...

kafka和zookeeper的最详细安装步骤和介绍

kafka和zookeeper的最详细安装步骤和介绍

kafka和zookeeper的详细安装步骤和介绍 1、异步通信 1.1. 观察者模式 观察者模式,又叫发布-订阅模式 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 一个对象(目标对象)的状态...

Windows上安装zookeeper+kafka

Windows上安装zookeeper+kafka

准备zookeeper和kafka安装包 zookeeper安装包下载地址:https://archive.apache.org/dist/zookeeper/ (本文选择apache-zookeeper-3.5.8-bin.tar.gz) k...

Docker安装Zookeeper和Kafka、Docker Compose 编排、Docker Portainer 容器

1、Docker 安装 ①安装必要的一些系统工具 输入Linux指令:sudo yum install -y yum-utils ②添加软件源信息 输入Linux指令:sudo yum-config-manager --add-repo http://mi...

五分钟搞定:Centos中Kafka和Zookeeper的快速安装教程

[提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 代码案例地址: ?https://github.com/Mydreamandreality/sparkResearch K...

springboot+dubbo分组+zookeeper集群

springboot+dubbo分组+zookeeper集群 provider 修改注册中心服务地址为多个 <dubbo:registry protocol="zookeeper" address="192.168.73.211:...

本地搭建dubbo+zookeeper环境

本地搭建dubbo+zookeeper环境

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan         在开发过程中使用到dubbo+zookeeper,而dubbo和zookeeper是部署在服务器上的,一旦环...

dubbo+zookeeper服务器配置

dubbo+zookeeper服务器配置

由于公司项目用到duboo,因此自己搭建了一套服务器环境测试一下,以下是服务器zookeeper的配置过程 linux安装zookeeper 1.安装前准备活动: 安装zookeeper前需要安装jdk,见附录 查看服务器ip linux下...

Aliyun安装Zookeeper

本来很简单的东西,安装费了很大劲,有的博客方法没有问题,可镜像等问题拉不下来,这边是将网上各博主的方法汇总、剔除掉错误的地方,亲自实践总结得出的。主要是对自己实践的一个总结,希望可以帮助到大家! 这里是Linux下安装Zookeeper 一、Zoo...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。