kafka在ubuntu怎样部署配置
导读:在 Ubuntu 上部署与配置 Kafka 的完整步骤 一 环境准备 安装 Java(推荐 OpenJDK 11,亦可使用 OpenJDK 8): 安装命令:sudo apt update && sudo apt ins...
在 Ubuntu 上部署与配置 Kafka 的完整步骤
一 环境准备
- 安装 Java(推荐 OpenJDK 11,亦可使用 OpenJDK 8):
- 安装命令:
sudo apt update & & sudo apt install -y openjdk-11-jdk - 验证版本:
java -version
- 安装命令:
- 创建专用用户(可选但推荐):
sudo useradd -m -s /bin/bash kafka & & sudo usermod -aG sudo kafka - 创建数据与日志目录(示例):
sudo mkdir -p /opt/kafka/{ data,logs} & & sudo chown -R kafka:kafka /opt/kafka - 下载并解压 Kafka(示例版本 3.5.1):
wget https://downloads.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgztar -xzf kafka_2.13-3.5.1.tgz & & sudo mv kafka_2.13-3.5.1 /opt/kafka
- 可选环境变量:
echo 'export KAFKA_HOME=/opt/kafka' > > ~/.bashrc & & echo 'export PATH=$PATH:$KAFKA_HOME/bin' > > ~/.bashrc & & source ~/.bashrc
二 单机部署与快速验证
- 启动 Zookeeper(Kafka 自带简易实例,开发测试足够):
cd /opt/kafka & & bin/zookeeper-server-start.sh config/zookeeper.properties
- 启动 Kafka Broker(新开终端):
bin/kafka-server-start.sh config/server.properties
- 创建测试 Topic:
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
- 发送与消费消息:
- 生产者:
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 - 消费者:
bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
- 生产者:
三 集群部署要点
- 规划与目录:
- 每台机器规划唯一 broker.id(如 0、1、2),创建本地数据目录(如 /opt/kafka/data)。
- 配置 Zookeeper 集群(至少 3 节点,示例):
- 编辑
config/zookeeper.properties:dataDir=/opt/zookeeper/dataclientPort=2181server.1=192.168.1.11:2888:3888server.2=192.168.1.12:2888:3888server.3=192.168.1.13:2888:3888
- 在对应节点的
dataDir下创建 myid 文件,写入各自的 server.x 编号(如节点1写入 1)。
- 编辑
- 配置 Kafka Broker(每台机器不同):
- 编辑
config/server.properties:broker.id=< 本机唯一ID>listeners=PLAINTEXT://:< 本机IP或0.0.0.0> :9092advertised.listeners=PLAINTEXT://< 本机对外IP> :9092log.dirs=/opt/kafka/datazookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181
- 编辑
- 启动顺序与验证:
- 先启动所有 Zookeeper,再启动各 Kafka Broker。
- 创建 Topic(示例三副本):
bin/kafka-topics.sh --create --topic test --bootstrap-server < 任一BrokerIP> :9092 --partitions 3 --replication-factor 3 - 生产与消费同上,验证跨节点连通与复制。
四 常用配置与优化
- 核心参数(server.properties):
broker.id:每个 Broker 的唯一标识(集群内唯一)。listeners:监听地址与端口(如PLAINTEXT://0.0.0.0:9092)。advertised.listeners:对外暴露地址(客户端实际连接地址,云服务器务必填公网或内网可达 IP)。log.dirs:消息日志目录(建议使用独立磁盘)。num.partitions:新建 Topic 的默认分区数(默认 1)。log.retention.hours:日志保留时长(默认 168 小时)。log.segment.bytes:段文件大小(默认 1GB)。
- JVM 与内存:
- 编辑
bin/kafka-server-start.sh,调整KAFKA_HEAP_OPTS(如-Xmx2G -Xms2G)以缓解内存不足。
- 编辑
- 主题管理:
- 允许删除 Topic(旧版本需显式开启):在
server.properties增加delete.topic.enable=true(新版本默认已支持)。
- 允许删除 Topic(旧版本需显式开启):在
五 服务化与运维
- 使用 systemd 管理(示例为单机,集群按需扩展):
- Zookeeper 服务文件
/etc/systemd/system/zookeeper.service:[Unit] Description=Apache Zookeeper After=network.target [Service] Type=simple User=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 [Install] WantedBy=multi-user.target - Kafka 服务文件
/etc/systemd/system/kafka.service:[Unit] Description=Apache Kafka Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=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 [Install] WantedBy=multi-user.target - 启用与启动:
sudo systemctl daemon-reloadsudo systemctl enable --now zookeeper kafka
- Zookeeper 服务文件
- 防火墙放行(云服务器常见):
sudo ufw allow 2181/tcpsudo ufw allow 9092/tcpsudo ufw reload
- 常用运维命令:
- 查看 Topic:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092 - 查看消费组:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
- 查看 Topic:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: kafka在ubuntu怎样部署配置
本文地址: https://pptw.com/jishu/775900.html
