ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 【4月更文挑战第8天】ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)

为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里演示搭建一个三个节点的集群。这里我使用三台主机进行搭建,主机名分别为 hadoop001,hadoop002、hadoop003。

1. 前期准备

主机名与ip地址映射,随后的配置文件内会使用主机名来映射ip地址,每台服务器都要进行设置:

[root@hadoop01 ~]# vim /etc/hosts
xxx.xx.x.x hadoop01 hadoop01
xxx.xx.x.x hadoop02 hadoop02
xxx.xx.x.x hadoop03 hadoop03

# hosts生效
[root@hadoop01 ~]# /etc/init.d/network restart
Restarting network (via systemctl):                        [  OK  ]

安装jdk,zookeeper也需要运行在Java环境下:

[root@hadoop01 logs]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

关闭防火墙【所有节点】:

# 查看防火墙状态
[root@hadoop01 logs]# firewall-cmd --state
not running
# 如果是开启状态,关闭防火墙:
[root@hadoop01 logs]# systemctl stop firewalld.service

2. 安装配置

  1. 在安装包所在文件夹下解压并移动到 /usr/local/ 文件夹下
    tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz
    mv ./apache-zookeeper-3.6.0-bin/ /usr/local/zookeeper
    
  2. 配置环境变量

配置环境变量的方法比较多,这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。

# 配置环境变量:
vim /etc/profile.d/my_env.sh
# 添加 ZOOKEEPER_HOME 和 PATH
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# 使得配置的环境变量立即生效:
    # 首先是要赋权限【只操作一次就行】
    chmod +x /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh
  1. 修改 zoo.cfg 配置【集群版有两个不同的地方:一个是zoo.cfg配置内容,另一个是myid】

进入${ZOOKEEPER_HOME}/conf/ 目录下,拷贝配置样本并进行修改:

[root@hadoop01 conf]# cp zoo_sample.cfg zoo.cfg

指定数据存储目录和日志文件目录(目录不用预先创建,程序会自动创建),修改后完整配置如下:

root@hadoop01 conf]# vim zoo.cfg
# 无关注释不再贴出
# 主要是配置这两个文件夹【默认也是可以的 把数据和日志文件夹都放在zookeep下 易于远程拷贝】
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
# 以下是默认值
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
# 以下是集群版配置信息【不同点一】
server.1=hadoop001:2287:3387
server.2=hadoop002:2287:3387
server.3=hadoop003:2287:3387

以上安装与单机版一致,详情可以参考单机版安装指南。单机版的参数说明不再赘述,解释以下集群配置:server.A=B:C:D

  • A:是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点【影响集群首次启动的leader选举】;
  • B:是A对应的服务器 ip 地址;
  • C:Zookeeper服务器之间的通信端口;
  • D:Leader选举的端口。

以上是集群版单机安装的内容,之后使用 scp 命令将安装包分发到其他两台服务器上:

# 将安装包分发到hadoop002
scp -r /usr/local/zookeeper/ hadoop002:/usr/local/
# 将安装包分发到hadoop003
scp -r /usr/local/zookeeper/ hadoop003:/usr/local/

【不同点二】集群版要在${dataDir}目录下添加 myid 文件

Zookeeper 集群通过myid 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出Leader 节点。【标识要跟 zoo.cfg 文件保持一致】

# hadoop001主机
echo "1" > /usr/local/zookeeper/data/myid
# hadoop002主机
echo "2" > /usr/local/zookeeper/data/myid
# hadoop003主机
echo "3" > /usr/local/zookeeper/data/myid

3. 集群启动

分别在三台主机上,执行如下命令启动服务:

[root@hadoop01 hadoop]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

4. 集群验证

启动后使用 zkServer.sh status 查看集群各个节点状态。三个节点进程均启动成功,并且 hadoop002 为 leader 节点,hadoop001 和 hadoop003 为 follower 节点。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
2月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
112 4
|
18天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
3月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
57 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
3月前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
66 5
|
3月前
|
资源调度 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
59 2
|
3月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
51 2
|
3月前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
105 1
|
29天前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
316 33
The Past, Present and Future of Apache Flink
|
3月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
909 13
Apache Flink 2.0-preview released
|
3月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
123 3

推荐镜像

更多