小工具      在线工具  汉语词典  css  js  c++  java

ZooKeeper【部署 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)

# ... .. . ZooKeeper . .. ...,zookeeper,服务器,apache 额外说明

收录于:192天前

为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群,可是我只有两天服务器怎么办呢?我试过两台服务器组件集群,但是无法启动,所以这里部署一个【一台服务器三个节点】的伪集群。

我使用的安装文件是 apache-zookeeper-3.6.0-bin.tar.gz ,以下内容均以此版本进行说明。

1. 前期准备

zookeeper需要运行在Java环境下,【zookeeper-3.6.0】版本在jdk1.8下正常运行,这台云服务器安装的是JDK11【这里顺便测试一下能否在JDK11下运行】:

[root@aliyun ~]# java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

关闭防火墙:

# 查看防火墙状态
[root@aliyun ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

# 如果是开启状态 关闭防火墙 
[root@aliyun ~]# systemctl stop firewalld.service

2. 安装配置

2.1 解压

# 准备伪集群目录【zookeeper-cluster 数据文件夹 日志文件夹】【这里不知道有没有简单方法 知道的小伙伴在评论区分享一下 造福大家】
mkdir /usr/local/zookeeper-cluster
cd /usr/local/zookeeper-cluster
mkdir data log
cd /usr/local/zookeeper-cluster/data
mkdir 01 02 03
cd /usr/local/zookeeper-cluster/log
mkdir 01 02 03

# 解压【这次不直接移动到/usr/local下】
[root@aliyun zookeeper]# tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz

2.2 修改配置

拷贝配置样本 zoo_sample.cfg 为 zoo.cfg 并进行修改【zookeeper 程序文件复制成三份后 zoo.cfg 还需要进行修改 将X修改成 1 2 3】【参数配置这里不再进行解释】可参考之前的《zookeeper 集群版》配置说明:

# 默认配置
tickTime=2000
initLimit=10
syncLimit=5
# 需要进行配置的
dataDir=/usr/local/zookeeper-cluster/data/0X
dataLogDir=/usr/local/zookeeper-cluster/log/0X
clientPort=218X
# 【如果是多台服务器 则集群中每个节点通讯端口和选举端口可相同 伪分布式不能相同】
server.1=aliyun:2287:3387
server.2=aliyun:2288:3388
server.3=aliyun:2289:3389

2.3 复制zookeeper程序文件

# 复制到 zookeeper01 zookeeper02 zookeeper03 【这里只贴出一个】 
cp -r /home/zookeeper/apache-zookeeper-3.6.0-bin/. /usr/local/zookeeper-cluster/zookeeper01

修改每个 zookeeper 程序文件的 zoo.cfg,这里只贴出 zookeeper01 的:

vim /usr/local/zookeeper-cluster/zookeeper01/conf/zoo.cfg
# 默认配置【三个配置文件相同】
tickTime=2000
initLimit=10
syncLimit=5
# 配置数据和日志文件夹及客户端端口【三个配置文件不同】
dataDir=/usr/local/zookeeper-cluster/data/01 【另外两台 02 03】
dataLogDir=/usr/local/zookeeper-cluster/log/01 【另外两台 02 03】
clientPort=2181 【另外两台 2182 2183# 配置通讯端口和选举端口【三个配置文件相同】
server.1=aliyun:2287:3387
server.2=aliyun:2288:3388
server.3=aliyun:2289:3389

2.4 标识节点

分别在三个节点的数据存储目录下新建 myid 文件,并写入对应的节点标识。Zookeeper 集群通过myid 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出 leader节点。

echo "1" > /usr/local/zookeeper-cluster/data/01/myid
echo "2" > /usr/local/zookeeper-cluster/data/02/myid
echo "3" > /usr/local/zookeeper-cluster/data/03/myid

2.5 启动集群

/usr/local/zookeeper-cluster/zookeeper01/bin/zkServer.sh start
/usr/local/zookeeper-cluster/zookeeper02/bin/zkServer.sh start
/usr/local/zookeeper-cluster/zookeeper03/bin/zkServer.sh start

# 【这里只贴出其中一个节点的成功日志】
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-cluster/zookeeper01/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

2.5 集群验证

使用 jps 查看进程,可看到有三个zookeeper进程:

[root@aliyun ~]# jps -l
10993 org.apache.zookeeper.server.quorum.QuorumPeerMain
1652 org.apache.zookeeper.server.quorum.QuorumPeerMain
11048 org.apache.zookeeper.server.quorum.QuorumPeerMain

使用 zkServer.sh status 查看集群各个节点状态:

/usr/local/zookeeper-cluster/zookeeper01/bin/zkServer.sh status
/usr/local/zookeeper-cluster/zookeeper02/bin/zkServer.sh status
/usr/local/zookeeper-cluster/zookeeper03/bin/zkServer.sh status

# 可以看到myid是2的是leader 1和3是follower【初始化的选举机制可自行了解一下】
[root@aliyun zookeeper01]# /usr/local/zookeeper-cluster/zookeeper01/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-cluster/zookeeper01/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[root@aliyun zookeeper01]# /usr/local/zookeeper-cluster/zookeeper02/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-cluster/zookeeper02/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost.
Mode: leader
[root@aliyun zookeeper01]# /usr/local/zookeeper-cluster/zookeeper03/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-cluster/zookeeper03/bin/../conf/zoo.cfg
Client port found: 2183. Client address: localhost.
Mode: follower

至此,一台服务器实现三个节点的ZooKeeper伪集群,安装部署启动成功 -

. . .

相关推荐

额外说明

Java使用POI导出Excel

目录 一、前景 二、概念 2.1. 简介 2.2.Excel版本和相关对象 2.3.WorkBook 2.4.POI依赖 三、POI - 写 3.1.代码示例 3.2. 性能对比 3.3. 测试rowAccessWindowSize 3.4. 导出Exc

额外说明

Druid介绍

  When should I use Druid? Druid is used by many companies of various sizes for many different use cases. Check out the Powered

额外说明

【Unity ShaderGraph】| 快速制作一个 钛金化不锈钢效果

前言 本文将使用ShaderGraph制作一个 钛金化不锈钢 效果,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 |

额外说明

第二届全国大学生算法设计与编程挑战赛-H-最大化-max

Description 有一张N个点的无向图,要求给每个点分配一个标号,使得任意一条边两端的点的标号差(绝对值)不能超过给出的常数D,要求在此基础上最大化标号的最大值减最小值。如果答案为+∞,则输出 -1。 Input 第一行两个数字n,D。 接下来n行

额外说明

Redis积分排行榜设计与实现第一篇

前言 越来越多的社交类APP为了提升应用的用户活跃度,刺激用户消费,采取签到功能,通过签到进行一系列的促销活动,比如签到赠送积分,通过积分可以兑换相应的礼品,购物抵扣券之类的 在某些APP上,有一种积分排行榜的功能,或者游戏APP应用上面也有类似的得分排

额外说明

kubernetes 部署 traefik

Traefik 简介 Træfɪk 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zook

额外说明

无心剑英译吴飞《经纬之歌》(泸州职业技术学院形象宣传歌曲)

文章目录 无心剑英译吴飞《经纬之歌》 无心剑七绝《百廿华诞》 无心剑七绝《泸职百廿庆》 酒城名校 —— 泸州职业技术学院 (一)办学定位 (二)悠久历史 (三)主要荣誉 (四)办学条件 (五)师资队伍 (六)合作交流 (七)教学科研 (八)社会服务 与时

额外说明

Spark基础学习笔记30:Spark SQL案例分析

文章目录 零、本讲学习目标 一、使用Spark SQL实现词频统计 (一)数据源 - words.txt (二)创建Maven项目 (三)添加依赖和构建插件 (四)修改源目录名称 (五)创建日志属性文件 (六)创建词频统计单例对象 (七)启动程序,查看结

额外说明

Idea Intellij 远程开发调试

一、背景 在构建MiniOB开发环境时需要Linux环境,另外结合分布式系统,利用较好的通信,萌发了远程开发的想法;实际上远程部署、开发在很久之前有过想法(大约刚开始学SpringBoot进行部署软件时,反复地本地开发在上传远程部署)。欲善其事,必先利其

额外说明

wordpress插件_WordPress插件Spring大扫除,不仅限于Spring!

WordPress 插件 Recently an article Ryan Imel posted on WPCandy about the 过分强调活跃插件数量的重要性 inspired some debate. The argument is ess

ads via 小工具