【kafka】kafka集群安装部署 and kafka操作命令介绍

本文详细介绍Kafka集群的搭建过程,包括Zookeeper安装、Kafka配置与部署、集群启动及停止、命令行管理工具使用等关键步骤。同时,文章还分享了在搭建过程中遇到的常见问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

之前有篇写kafka集群的搭建,但是不太完整,重新整理了一篇 。更强调实验。包括topic创建、查看 producer生产 consumer去消费。
zookeeper这里就没讲安装步骤 可以直接去有一篇写好的看
然后这里我的集群是 had-node2 had-node3 had-node4 三台

一、安装zookeeper

安装zookeeper之前一定要确保三台机器时钟同步

安装查看:
https://blog.youkuaiyun.com/weixin_45783164/article/details/105491110

二、kafka的安装
  1. 下载安装包(http://kafka.apache.org)
    ○ kafka_2.11-1.0.0.tgz
  2. 规划安装目录
    ○ /export/servers/kafka
  3. 上传安装包到服务器中
  4. 解压安装包到指定规划目录
    ○ tar -zxvf kafka_2.11-1.0.0.tgz
  5. 修改配置文件
    ○ 在had-node2上修改
    § 进入到kafka安装目录下有一个config目录
    □ vi server.properties
# had-node2
broker.id=0
listeners=PLAINTEXT://had-node2:9092
advertised.listeners=PLAINTEXT://had-node2:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=5
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=24
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
# 连接
zookeeper.connect=had-node2:2181,had-node3:2181,had-node4:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
# 可删除topic
delete.topic.enable=true

配置kafka环境变量

vi /etc/profile
export KAFKA_HOME=/export/servers/kafka
export PATH=$PATH:$KAFKA_HOME/bin

source /etc/profile

  1. 分发kafka安装目录到其他节点
scp -r kafka root@had-node3:/export/servers
scp -r kafka root@had-node4:/export/servers
scp /etc/profile node2:/etc
scp /etc/profile node3:/etc
  1. 修改node2和node3上的配置
    并修改每个节点对应的 server.properties 文件的 broker.id和listenrs
broker.id=1
listeners=PLAINTEXT://had-node3:9092
advertised.listeners=PLAINTEXT://had-node3:9092
broker.id=2
listeners=PLAINTEXT://had-node4:9092
advertised.listeners=PLAINTEXT://had-node4:9092
三、kafka集群启动和停止

1、启动

  • 先启动zk集群
  • 然后在所有节点执行脚本
bin/kafka-server-start.sh config/server.properties &
  • 或者可以写个 一键启动kafka脚本
    vim start_kafka.sh
 #!/bin/sh
  for host in {had-node2,had-node3,had-node4}
  do
          ssh $host "source /etc/profile;nohup kafka-server-start.sh /export/servers/kafka/config/server
  .properties >/dev/null 2>&1 &" 
          echo "$host kafka is running"​
  done​

2、停止
在所有节点执行脚本

需要修改信息 kafka-server-stop.sh
这个脚本的逻辑就是通过下面的命令获取kafka进程号,这个默认的kafka集群是获取不到(脚本有问题)

原始:
  PIDS=$(ps ax | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $1}')
  ​
  再所有的节点都需要修改成:
  PIDS=$(ps ax | grep -i 'kafka' | grep java | grep -v grep | awk '{print $1}')


可以在所有节点执行:
kafka-server-stop.sh

也可以写个 一键停止kafka脚本
vim stop_kafka.sh

 #!/bin/sh
  for host in node1 node2 node3
  do
    ssh $host "source /etc/profile;nohup /export/servers/kafka/bin/kafka-server-stop.sh&" 
    echo "$host kafka is stopping"
  done
四、kafka的命令行的管理使用

1、创建topic

 kafka-topics.sh
	bin/kafka-topics.sh --create --zookeeper had-node2:2181, had-node3:2181, had-node4:2181 --replication-factor 3 --partitions 3 --topic kafkatest

在这里插入图片描述

2、查询所有的topic

 kafka-topics.sh
	 bin/kafka-topics.sh --describe --zookeeper had-node2:2181, had-node3:2181, had-node4:2181 --topic kafkatest

在这里插入图片描述

bin/kafka-topics.sh --list --zookeeper had-node2:2181, had-node3:2181, had-node4:2181 

在这里插入图片描述

3、模拟生产者写入数据到topic中

kafka-console-producer.sh
	kafka-console-producer.sh --broker-list had-node2:9092 -topic kafkatest

在这里插入图片描述

4、模拟消费者拉取topic中的数据

 kafka-console-consumer.sh
	bin/kafka-console-consumer.sh --bootstrap-server had-node2:9092, had-node3:9092, had-node4:9092 --topic kafkatest --from-beginning

kafka-console-consumer.sh --zookeeper node1:2181,node2:2181,node3:2181 --topic test --from-beginning

(但不知道为什么显示没有zookeeper这个命令)

5、删除topic

bin/kafka-topics.sh --delete --zookeeper had-node2:2181, had-node3:2181, had-node4:2181 --replication-factor 3 --partitions 3 --topic kafkatest
五、出现的问题

呜呜呜 真的出现了很多问题
包括若集群不统一
在指定kafka-logs里的meta 文件的id 要和 servers.p 那个文件的id保持一致
如果有错误可以查看日志文件

还有集群部分的kafka起不起来的问题 其实就是因为id 不一致

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值