ubuntu中kafka配置方法
Ubuntu环境下Kafka配置完整步骤
1. 准备工作
- 操作系统:Ubuntu 16.04及以上版本;
- 内存:至少4GB(生产环境建议8GB以上);
- 硬盘空间:至少500GB(用于存储消息日志);
- 网络:确保服务器能访问互联网(用于下载安装包)。
2. 安装Java环境(Kafka依赖)
Kafka是用Java开发的,需先安装Java Development Kit (JDK)。推荐使用OpenJDK 8(兼容性最好):
sudo apt update
sudo apt install openjdk-8-jdk -y
# 验证安装
java -version
输出应包含openjdk version "1.8.x"
,表示安装成功。
3. 安装与配置Zookeeper(Kafka依赖)
Kafka通过Zookeeper管理集群元数据(如broker信息、Topic分区等),需先安装Zookeeper:
# 下载Zookeeper(以3.4.6为例)
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
# 解压到/usr/local目录
tar xvf zookeeper-3.4.6.tar.gz
sudo mv zookeeper-3.4.6 /usr/local/zookeeper
# 创建数据目录(存储Zookeeper数据)
sudo mkdir -p /var/lib/zookeeper
sudo chown -R $(whoami):$(whoami) /usr/local/zookeeper /var/lib/zookeeper
# 配置Zookeeper
sudo cat >
/usr/local/zookeeper/conf/zoo.cfg <
<
EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF
# 启动Zookeeper
sudo /usr/local/zookeeper/bin/zkServer.sh start
# 验证启动(检查2181端口是否监听)
sudo netstat -tulnp | grep 2181
若输出包含2181/tcp
,说明Zookeeper启动成功。
4. 下载与解压Kafka
从Apache官网下载最新稳定版Kafka(以3.5.2为例),解压到指定目录:
# 下载Kafka
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
# 解压到/usr/local目录
tar -xzf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /usr/local/kafka
# 创建日志目录(存储Kafka消息)
sudo mkdir -p /usr/local/kafka/logs
sudo chown -R $(whoami):$(whoami) /usr/local/kafka
此处将Kafka日志目录设置为/usr/local/kafka/logs
(替代默认的/tmp/kafka-logs
,避免重启后数据丢失)。
5. 配置Kafka核心参数
编辑Kafka的主配置文件server.properties
(位于/usr/local/kafka/config/
目录),修改以下关键参数:
sudo vi /usr/local/kafka/config/server.properties
核心配置项说明:
broker.id
:Kafka broker的唯一标识(集群中需唯一,单机可设为0
);listeners
:Kafka监听的地址和端口(PLAINTEXT://your_server_ip:9092
,若仅在本地测试可设为PLAINTEXT://:9092
);advertised.listeners
:对外暴露的地址和端口(集群中需设置为其他broker能访问的地址,本地测试可省略或与listeners
一致);zookeeper.connect
:Zookeeper连接地址(localhost:2181
,若Zookeeper部署在其他服务器需替换为对应IP);log.dirs
:Kafka日志存储目录(/usr/local/kafka/logs
,需提前创建并授权);num.partitions
:默认分区数(1
,生产环境建议根据吞吐量调整,如3
);default.replication.factor
:默认副本因子(1
,生产环境建议设置为3
,需与集群broker数量匹配)。
6. 启动Kafka服务
使用以下命令启动Kafka(前台模式,便于查看日志):
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
若需后台运行(推荐),添加-daemon
参数:
sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
# 验证启动(检查9092端口是否监听)
sudo netstat -tulnp | grep 9092
若输出包含9092/tcp
,说明Kafka启动成功。
7. 测试Kafka功能
7.1 创建Topic
创建一个名为test
的Topic(1个分区、1个副本):
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
# 验证Topic是否创建成功
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
7.2 生产消息
启动一个生产者,向test
Topic发送消息:
sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
输入任意消息(如Hello, Kafka on Ubuntu
),按Ctrl+C
退出。
7.3 消费消息
启动一个消费者,从test
Topic接收消息:
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
应能看到生产者发送的消息,按Ctrl+C
退出。
8. 可选配置(优化体验)
8.1 配置环境变量
将Kafka的bin
目录添加到系统PATH
,方便全局使用Kafka命令:
# 编辑~/.bashrc文件
echo 'export KAFKA_HOME=/usr/local/kafka' >
>
~/.bashrc
echo 'export PATH=$PATH:$KAFKA_HOME/bin' >
>
~/.bashrc
# 生效配置
source ~/.bashrc
# 验证(无需路径可直接运行)
kafka-topics --version
8.2 设置开机自启
创建systemd服务文件,实现Kafka和Zookeeper开机自动启动:
# 创建Zookeeper服务文件
sudo vi /etc/systemd/system/zookeeper.service
写入以下内容:
[Unit]
Description=Zookeeper service
After=network.target
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 创建Kafka服务文件
sudo vi /etc/systemd/system/kafka.service
写入以下内容:
[Unit]
Description=Apache Kafka server (broker)
After=zookeeper.service network.target
[Service]
Type=simple
User=$(whoami)
Group=$(whoami)
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 刷新systemd配置并启用服务
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
# 启动服务
sudo systemctl start zookeeper
sudo systemctl start kafka
# 检查服务状态
sudo systemctl status zookeeper
sudo systemctl status kafka
若状态显示active (running)
,说明开机自启配置成功。
9. 防火墙配置(可选)
若服务器开启了防火墙(如ufw
),需允许Kafka和Zookeeper的端口:
# 允许Zookeeper端口(2181)
sudo ufw allow 2181
# 允许Kafka端口(9092)
sudo ufw allow 9092
# 重新加载防火墙规则
sudo ufw reload
通过以上步骤,即可在Ubuntu环境下完成Kafka的基本配置与测试。生产环境中还需进一步优化(如集群部署、数据备份、安全认证等)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu中kafka配置方法
本文地址: https://pptw.com/jishu/728937.html