Kafka安装与配置-cnblog

安装与配置Kafka高可用集群模式

进入主节点hadoop01的software子目录

cd /usr/software/

将Kafka下载到software目录下

wget https://mirrors.huaweicloud.com/apache/kafka/2.8.1/kafka_2.12-2.8.1.tgz

解压到App目录下

tar -zxvf kafka_2.12-2.8.1.tgz -C /usr/app

解压后进入kafka目录下

cd /usr/app/kafka_2.12-2.8.1/

新建log目录

mkdir logs

进入kafka目录下的config目录

cd /usr/app/kafka_2.12-2.8.1/config

打开此目录下的server.properties文件

vi server.properties

对照以下代码进行修改

image-20251117152603171

image-20251117152643918

image-20251117152715890

返回到app目录

cd /usr/app

将配置号的Kafka复制到节点hadoop02、hadoop03

scp -r kafka_2.12-2.8.1/ root@hadoop02:/usr/app/
scp -r kafka_2.12-2.8.1/ root@hadoop03:/usr/app/

进入hadoop02节点的conf目录下

cd /usr/app/kafka_2.12-2.8.1/config

编辑server.properties文件

vi server.properties

image-20251117181411596

image-20251117155223540

进入hadoop03节点的conf目录下进行同样操作

image-20251117155400916

在所有节点上修改环境变量

vi /etc/profile

在打开的文件中追加以下内容

export KAFKA_HOME=/usr/app/kafka_2.12-2.8.1
export PATH=$PATH:/$KAFKA_HOME/bin

执行命令,使修改生效

source /etc/profile

启动Kafka集群

在所有节点上开启zookeeper和kafka

zkServer.sh start
kafka-server-start.sh -daemon /usr/app/kafka_2.12-2.8.1/config/server.properties

执行以下命令查看启动情况

jps

image-20251117160710016

如果要停止kafka在所有节点上执行以下命令

kafka-server-stop.sh -daemon /usr/app/kafka_2.12-2.8.1/config/server.properties

定制kafka启动与退出脚本

进入kafka的bin目录

cd /usr/app/kafka_2.12-2.8.1/bin

在此目录下创建kafka的启动脚本

vi start-kafka.sh

在文件中写入以下代码

kafka-server-start.sh -daemon /usr/app/kafka_2.12-2.8.1/config/server.properties

再创建一个kafka的退出脚本文件

vi stop-kafka.sh

修改这两个文件的权限

chmod u+x start-kafka.sh
chmod u+x stop-kafka.sh

将这两个脚本复制到集群中其他两个节点的相同目录下

scp start-kafka.sh root@hadoop02:$PWD
scp stop-kafka.sh root@hadoop02:$PWD
scp start-kafka.sh root@hadoop03:$PWD
scp stop-kafka.sh root@hadoop02:$PWD

在所有节点上依次执行以下命令测试启动脚本

zkServer.sh start
start-kafka.sh

使用jps检测结果

image-20251117164924742

在所有节点上执行以下命令测试退出Kafka集群

stop-kafka.sh

对Kafka集群进行高可用测试

测试前的准备

在主节点Hadoop上,执行以下命令创建一个名称为`test``带有两个partition、两个副本的Topic

kafka-topics.sh --create --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --replication-factor 2 --partitions 2 --topic test

查看Topic(test)的状态

kafka-topics.sh --describe --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 -topic test

image-20251117185558228

查看kafka中已存在的所有topic可以使用以下命令

kafka-topics.sh --list --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181

❗若在创建testTopic的时候遇见如下错误:

log4j:ERROR Could not read configuration file from URL [file://usr/app/kafka_2.12-2.8.1/bin/../config/tools-log4j.properties].

这是Log4j 配置文件路径解析错误。

解决方法:修改 Kafka 的 工具脚本配置文件

  1. 编辑 kafka-run-class.sh 脚本
vi /usr/app/kafka_2.12-2.8.1/bin/kafka-run-class.sh

找到类似如下代码块,将路径修改为绝对路径

image-20251117182707250

  1. 同步到所有节点
scp /usr/app/kafka_2.12-2.8.1/bin/kafka-run-class.sh root@hadoop02:/usr/app/kafka_2.12-2.8.1/bin/
scp /usr/app/kafka_2.12-2.8.1/bin/kafka-run-class.sh root@hadoop03:/usr/app/kafka_2.12-2.8.1/bin/
  1. 重新创建testTopic即可
kafka-topics.sh --create --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --replication-factor 2 --partitions 2 --topic test

高可用测试

在hadoop03节点上执行以下命令,找到hadoop03节点上的broker服务器的进程号

jps

image-20251117192137541

在hadoop03节点上停掉broker服务

kill -9 4024

整个Kafka集群中的Topic(test)的状态就会发生变化,在集群中任意节点执行以下命令查看Topic(test)的状态

kafka-topics.sh --describe --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --topic test

image-20251117192442839

返回的结果表示分区0处于leader状态的服务器由原来的2转换成了0,即节点hadoop01,结果表明Kafka在失去其中一台broker服务器后仍正常运行

posted @ 2025-12-09 14:41  酱焖热带鱼  阅读(24)  评论(0)    收藏  举报