环境信息

硬件信息

  1. CPU :4C
  2. CPU型号:ARM64
  3. 内存 :10GB
  4. 硬盘 :66GB SSD

软件信息

  1. VM镜像版本 :CentOS-7
  2. Apahce Doris版本 :1.2.4.1
  3. Kafka版本:3.2.0
  4. Zookeeper版本:3.6.4

Kafka介绍

在这里插入图片描述
Apache Kafka 是一个高效、可扩展的、高吞吐的、可容错的分布式发布订阅式的消息系统,能够将消息数据从一个端点传递到另一个端点,较之传统的消息中间件(例如 RocketMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息数据处理。

Zookeeper安装部署

本文使用kafka默认自带的zk,后续可以改为自己单独部署的zk

下载Zookeeper

#下载zk包
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
#创建安装文件夹
mkdir -p /opt/zk3.6.4
cd /opt/zk3.6.4

#解压安装
tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
mv apache-zookeeper-3.6.4-bin.tar.gz/* ./
rm -rf apache-zookeeper-3.6.4-bin.tar.gz*

安装Zookeeper及初始化

#生产zk配置文件
cd /opt/zk3.6.4/conf/
cp zoo_sample.cfg zoo.cfg

#修改zoo.cfg配置
dataDir=/home/zookeeper/data
dataDir=/home/zookeeper/log
server.1=localhost:2888:3888

#创建相关目录
mkdir -p /home/zookeeper/data
mkdir -p /home/zookeeper/log

Kafka安装部署

下载Kafka

#根据自己scala版本和系统进行下载
wget https://archive.apache.org/dist/kafka/3.2.0/kafka_2.12-3.2.0.tgz

#创建安装文件夹
mkdir -p /opt/kafka3.2
cd /opt/kafka3.2

#解压安装
tar -xvf kafka_2.12-3.2.0.tgz
mv kafka_2.12-3.2.0.tgz/* ./
rm -rf kafka_2.12-3.2.0.tgz*

#创建日志目录
mkdir logs

安装Kafka及初始化

修改kafka-server配置

#修改kafka-server的配置文件
vim config/server.properties

#修改如下
log.dirs=/opt/kafka3.2/logs
listeners=PLAINTEXT://doris:9092
auto.create.topics.enable=true

#其它的如果是单机可以不用改
port=9092 #端口号 
host.name=localhost #单机可直接用localhost
log.dirs=/opt/monitor/kafka/kafka_dat #日志存放路径可修改可不修改
zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181 

修改自带zk配置

也可以自己另外部署zk不适用自带的zk

vim config/zookeeper.properties 

#修改如下
tickTime=2000
dataDir=/opt/kafka3.2/zookeeper_data

#创建zk的数据存储目录
mkdir /opt/kafka3.2/zookeeper_data

启动Kafka和ZK

启动zk

./bin/zookeeper-server-start.sh -daemon  ./config/zookeeper.properties 

启动kafka

./bin/kafka-server-start.sh -daemon  ./config/server.properties   

#jps查看进程
jps

在这里插入图片描述

服务测试

2.2+=的版本,已经不需要依赖zookeeper来查看/创建topic,新版本使用 --bootstrap-server替换老版本的 --zookeeper-server

Topic测试

#创建topic,使用 kafka-topics.sh 创建单分区单副本的 topic test01
./bin/kafka-topics.sh --create --bootstrap-server doris:9092 --replication-factor 1 --partitions 1 --topic test01

#查询topic列表
./bin/kafka-topics.sh --list --bootstrap-server doris:9092
#指定查看
./bin/kafka-topics.sh --bootstrap-server doris:9092 --describe --topic test01

#删除topic
./bin/kafka-topics.sh --bootstrap-server doris:9092 --delete --topic test01

生产测试

#开一个窗,启动生产者
./bin/kafka-console-producer.sh --broker-list doris:9092 --topic test01

在这里插入图片描述

消费测试

#开一个窗,启动消费者
#旧版本
./bin/kafka-console-consumer.sh --bootstrap-server doris:9092 --topic test01 --from-beginning
#新版本
./bin/kafka-console-consumer.sh --bootstrap-server doris:9092 --topic test01 --from-beginning

#查看kafka生产最大位置偏移量
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list doris:9092 --topic test01 --time -1

在这里插入图片描述

常见问题

ZK启动失败

异常详情:Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
在这里插入图片描述

解决:

#修改./bin/kafka-run-class.sh
vim ./bin/kafka-run-class.sh

#KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 
#直接删掉 -XX:+UseG1GC。重启zk集群,启动kafka集群即可

kafka安装部署至此结束,安装部署过程中若遇到问题欢迎留言交流

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐