Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境
- Kafka简介:Apache Kafka是由LinkedIn开发并捐赠给Apache基金会的分布式流处理平台,现已成为实时数据管道和流应用领域的行业标准。它基于高吞吐、低延迟的设计理念,能够轻松处理每秒百万级消息传输,具备水平扩展、数据持久化、高容错等核心特性。Kafka广泛应用于日志聚合、实时监控、事件溯源、消息队列等场景,是大数据生态中连接传统数据库与流处理引擎(如Flink、Spark)的关键组件,被腾讯云、Netflix、Uber等顶级互联网企业深度应用于核心业务系统。
复制代码 一、环境准备与安装
1. 安装 Java(详细步骤)
- # CentOS
- sudo yum install -y java-1.8.0-openjdk-devel
- # Ubuntu
- sudo apt update && sudo apt install -y openjdk-8-jdk
- # 验证安装
- java -version # 应输出类似 "openjdk version 1.8.0_382"
复制代码
2. 下载并解压 Kafka
- wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
- tar -xzf kafka_2.13-3.6.1.tgz
- mv kafka_2.13-3.6.1 /opt/kafka # 建议移动到标准化目录
- cd /opt/kafka
复制代码 如果服务器网络不佳可在官网手动下载并上传至服务器:
下载地址:Apache Kafka
二、配置文件详解
1. ZooKeeper 配置
- config/zookeeper.properties
复制代码- # 数据存储目录(重要:生产环境需改为持久化路径,如 /var/lib/zookeeper)
- dataDir=/tmp/zookeeper
- # 客户端连接端口
- clientPort=2181
- # 最大客户端连接数(0 表示无限制)
- maxClientCnxns=0
- # 集群配置(单节点无需配置)
- # server.1=zk-node1:2888:3888
- # server.2=zk-node2:2888:3888
复制代码
2. Kafka Broker 配置
- # Broker 的唯一标识(集群中每个节点必须不同)
- broker.id=0
- # 监听地址和协议(生产环境建议用具体IP,如 PLAINTEXT://192.168.1.100:9092)
- listeners=PLAINTEXT://:9092
- # Kafka 日志存储目录(生产环境需改为持久化路径,如 /var/lib/kafka-logs)
- log.dirs=/tmp/kafka-logs
- # 每个 Topic 的默认分区数(影响并行度)
- num.partitions=1
- # ZooKeeper 连接地址(集群用逗号分隔,如 zk1:2181,zk2:2181)
- zookeeper.connect=localhost:2181
- # 其他重要参数(可选)
- # 日志保留时间(小时)
- log.retention.hours=168
- # 单个日志文件最大大小(字节)
- log.segment.bytes=1073741824
- # 网络线程数
- num.network.threads=3
- # IO 线程数
- num.io.threads=8
复制代码
三、配置为系统服务(Systemd)
1. 创建 ZooKeeper 服务文件
- sudo vim /etc/systemd/system/zookeeper.service
复制代码 内容如下:- [Unit]
- Description=Apache ZooKeeper Service
- After=network.target
- [Service]
- Type=simple
- User=kafka # 建议创建专用用户(见下方说明)
- Group=kafka
- ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
- ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
- Restart=on-failure
- RestartSec=10s
- [Install]
- WantedBy=multi-user.target
复制代码 2. 创建 Kafka 服务文件
- sudo vim /etc/systemd/system/kafka.service
复制代码 内容如下:- [Unit]
- Description=Apache Kafka Service
- After=zookeeper.service
- [Service]
- Type=simple
- User=kafka
- Group=kafka
- ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
- ExecStop=/opt/kafka/bin/kafka-server-stop.sh
- Restart=on-failure
- RestartSec=10s
- [Install]
- WantedBy=multi-user.target
复制代码 3. 创建专用用户和目录(增强安全性)
- sudo useradd -r -s /bin/false kafka
- sudo mkdir -p /var/lib/{zookeeper,kafka-logs}
- sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs} /opt/kafka
复制代码 4. 修改配置文件中的持久化路径
修改:- dataDir=/var/lib/zookeeper
复制代码 修改:- log.dirs=/var/lib/kafka-logs
复制代码 5. 启用服务
- sudo systemctl daemon-reload
- sudo systemctl enable --now zookeeper
- sudo systemctl enable --now kafka
- # 检查状态
- sudo systemctl status zookeeper kafka
复制代码
*四、验证服务
1. 功能测试(详细命令)
- # 创建 Topic(明确指定分区和副本)
- /opt/kafka/bin/kafka-topics.sh --create \
- --topic test-topic \
- --bootstrap-server localhost:9092 \
- --partitions 3 \
- --replication-factor 1
- # 生产消息(输入多行消息后按 Ctrl+C 退出)
- /opt/kafka/bin/kafka-console-producer.sh \
- --topic test-topic \
- --bootstrap-server localhost:9092
- # 消费消息(新终端执行)
- /opt/kafka/bin/kafka-console-consumer.sh \
- --topic test-topic \
- --bootstrap-server localhost:9092 \
- --from-beginning
复制代码 测试效果如图:
五、关键配置项深度解析
配置项作用说明生产环境建议值Broker 的唯一标识,集群中必须唯一数字递增(0,1,2…)Broker 监听的网络地址和协议使用服务器内网IP,如- PLAINTEXT://192.168.1.100:9092
复制代码 Kafka 数据存储目录,多个目录用逗号分隔可提升性能挂载独立磁盘,如ZooKeeper 集群地址,格式为至少3节点集群新建 Topic 的默认分区数(影响并行处理能力)根据业务需求设置(通常3-10)消息保留时间按业务需求(如 168=7天)- default.replication.factor
复制代码 新建 Topic 的默认副本数(高可用关键)至少2,集群节点数≥副本数
六、故障排查指南
1. 查看服务日志
- # ZooKeeper 日志
- journalctl -u zookeeper -f
- # Kafka 日志
- journalctl -u kafka -f
复制代码 2. 端口占用检查
- sudo netstat -tlnp | grep -E '2181|9092'
复制代码 3. 文件权限修复
- sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs}
复制代码 到此这篇关于Apache Kafka单节点极速部署指南及搭建开发单节点环境的操作步骤的文章就介绍到这了,更多相关Apache Kafka单节点部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:互联网
免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作! |