Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

我使用的安装文件是 kafka_2.11-2.4.1.tgz ,以下内容均以此版本进行说明。zookeeper集群也是伪集群,zk的伪集群搭建方法可参考《Zookeeper-3.6.0 伪集群版 搭建指南》

1 安装kafka

之前有单机版的铺垫《kafka_2.11-2.4.1 单机版安装指南》,这里省略部分说直接开装,也可参考官网《kafka_2.13-2.8.0 quickstart》官网网速可不 quick :snail:

# 解压安装包并移动到 /usr/local/ 文件夹下
[root@aliyun kafka]# tar -zxvf kafka_2.11-2.4.1.tgz
[root@aliyun kafka]# mv ./kafka_2.11-2.4.1/ /usr/local/kafka

配置环境变量【目的随时随地执行命令】配置方法比较多,这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。

# 配置环境变量:
vim /etc/profile.d/my_env.sh
# 添加 KAFKA_HOME和bin
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# 使得配置的环境变量立即生效:
    # 首先是要赋权限【只操作一次就行】
    chmod +x /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh

单机版 kafka 安装结束,是不是很惊讶!就是这么 quick :zap:

2 分布式配置

进入${KAFKA_HOME}/config/ 目录下 ,拷贝三份 server.properties 配置文件:

cp ./server.properties ./server-1.properties
cp ./server.properties ./server-2.properties
cp ./server.properties ./server-3.properties
# 【先查看一下zk伪集群的地址】无关信息不再贴出
Client port found: 2181. Client address: localhost.
Client port found: 2182. Client address: localhost.
Client port found: 2183. Client address: localhost.
# 分别修改三个 server.properties 配置文件【以第一个为例】
vim /usr/local/kafka/config/server-1.properties
# - - - - - - 内容如下 - - - - - - 
# 1.集群中每个节点的唯一标识
broker.id=0【三个配置文件不同 server-2 为1 server-3 为2】
# 2.监听地址
listeners=PLAINTEXT://aliyun:9091【三个配置文件不同 server-2 为9092 server-3 为9093】
# 数据的存储位置
log.dirs=/usr/local/kafka/kafka-logs/01【三个配置文件不同 server-2 为02 server-3 为03】
# zookeeper集群地址【这里搭建的是伪集群】
zookeeper.connect=aliyun:2181,aliyun:2182,aliyun:2183【三个配置文件相同】

kafka的 log.dirs 指的是数据日志的存储位置,就是分区数据的存储位置,而不是程序运行日志信息的位置。配置程序运行日志信息的位置是通过同一目录下的 log4j.properties 进行的。至此,集群配置已完成。

3 启动集群并测试

由于配置过环境变量 KAFKA_HOME 所有在任何文件夹下都可以进行启动:

# 使用三个不同的配置文件分别启动三个实例【使用三个不同的终端窗口 且启动后不要关闭 否则服务就会停止】
kafka-server-start.sh /usr/local/kafka/config/server-1.properties
kafka-server-start.sh /usr/local/kafka/config/server-2.properties
kafka-server-start.sh /usr/local/kafka/config/server-3.properties

进行测试:

# 创建一个主题
kafka-topics.sh --create --bootstrap-server tcloud:9092 \
--replication-factor 3 \
--partitions 1 \
--topic yuan

# 查看主题信息
[root@tcloud ~]# kafka-topics.sh --describe --bootstrap-server tcloud:9092 --topic yuan
[2021-08-07 18:07:38,587] WARN [AdminClient clientId=adminclient-1] Connection to node 2 (localhost/127.0.0.1:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
Topic: yuan     PartitionCount: 1       ReplicationFactor: 3    Configs: segment.bytes=1073741824
        Topic: yuan     Partition: 0    Leader: 0       Replicas: 0,1,2 Isr: 0,1

可以看到有1分分区3个副本,且三个副本都是可用副本,当前只有 0,1在 ISR(in-sync Replica 同步副本)列表中,其中 0 为首领副本,此时代表集群已经搭建成功。

4 总结

最终总结一下曲折的启动历程,由于我是用的是云服务器1核2G,内存是真不够用,启动第三个的时候:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; 
error='Cannot allocate memory' (errno=12)

我只好在我的另一台服务器上启动了第三个节点,最终才启动起来 :sob:

目录
相关文章
|
4天前
|
弹性计算 DataWorks 关系型数据库
ECS节点问题之节点一直失败如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
3天前
|
SQL 弹性计算 分布式计算
实时计算 Flink版产品使用合集之如果产品是基于ak的,可以提交sql任务到ecs自建hadoop集群吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
15 0
|
4天前
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
|
4天前
|
Shell
ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
【4月更文挑战第10天】ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
25 0
|
4天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
35 1
|
4天前
|
Java 网络安全 Apache
搭建Zookeeper集群:三台服务器,一场分布式之舞
搭建Zookeeper集群:三台服务器,一场分布式之舞
53 0
|
4天前
|
消息中间件 安全 Kafka
2024年了,如何更好的搭建Kafka集群?
我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。
515 2
2024年了,如何更好的搭建Kafka集群?
|
4天前
|
消息中间件 存储 数据可视化
kafka高可用集群搭建
kafka高可用集群搭建
49 0
|
7月前
|
消息中间件 存储 Kubernetes
Helm方式部署 zookeeper+kafka 集群 ——2023.05
Helm方式部署 zookeeper+kafka 集群 ——2023.05
279 0
|
4天前
|
消息中间件 Kafka Linux
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
73 0

热门文章

最新文章

http://www.vxiaotou.com