kafka_2.11-2.4.1单机安装
在本指南中,我们将手把手教你如何在单机环境中部署 Kafka 2.4.1,从下载、安装到配置及优化,涵盖每一个关键步骤。无论你是初次接触 Kafka 还是希望深入了解其配置细节,本指南都将为你提供必要的帮助。我们将介绍如何创建目录、解压安装包、修改配置文件以适应特定需求,并详细解释启动和停止 Kafka 的过程。还包括内存优化、调整线程数和网络配置等高级设置,确保 Kafka 在你的系统上运行得更
在本指南中,我们将手把手教你如何在单机环境中部署 Kafka 2.4.1,从下载、安装到配置及优化,涵盖每一个关键步骤。无论你是初次接触 Kafka 还是希望深入了解其配置细节,本指南都将为你提供必要的帮助。我们将介绍如何创建目录、解压安装包、修改配置文件以适应特定需求,并详细解释启动和停止 Kafka 的过程。还包括内存优化、调整线程数和网络配置等高级设置,确保 Kafka 在你的系统上运行得更加高效稳定。让我们一起探索 Kafka 的强大功能,提升你的消息处理能力!
Kafka 2.11-2.4.1 单机安装指南
下载 Kafka
Kafka 的官方下载地址是:http://kafka.apache.org/downloads.html
使用以下命令下载 Kafka 安装包:
# 2.11 是 Scala 的版本,2.4.1 是 Kafka 的版本
wget https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz
创建 Kafka 相关目录
在安装 Kafka 之前,先创建 Kafka 相关的目录:
mkdir -p /usr/local/kafka/kafka_2.11-2.4.1/kafka-logs
上传并解压安装包
将下载的 Kafka 安装包上传到服务器后,解压安装包:
tar -zxvf kafka_2.11-2.4.1.tgz -C /usr/local/kafka/
[可选]修改配置文件
如果 Zookeeper 和 Kafka 在同一台机器上,单机版可以使用默认配置启动。若需要自定义配置,建议修改以下几项:
-
备份原配置文件
在修改配置文件前,建议先备份一下原配置文件:cp /usr/local/kafka/kafka_2.11-2.4.1/config/server.properties /usr/local/kafka/kafka_2.11-2.4.1/config/server.properties.bak -
修改日志目录
默认日志目录是log.dirs=/tmp/kafka-logs,/tmp 下的文件会被系统定期清理,建议修改成自己的目录:log.dirs=/usr/local/kafka/kafka_2.11-2.4.1/kafka-logs -
配置 Zookeeper
Zookeeper 默认配置是zookeeper.connect=localhost:2181,如果 Kafka 和 Zookeeper 在同一台机器上可以不修改。 -
监听器配置 (listeners)
默认监听localhost:9092,如果服务器有多个网卡,可以配置多个监听器,用逗号分隔。如果配置为0.0.0.0:9092,表示监听所有网卡:listeners=PLAINTEXT://0.0.0.0:9092 -
对外公布的监听器 (advertised.listeners)
advertised.listeners是对外公布的监听器,供客户端和其他 Broker 使用。如果listeners配置为0.0.0.0,则必须设置advertised.listeners属性。advertised.listeners不支持0.0.0.0这种形式,因此需要设置具体的 IP 和端口:
advertised.listeners=PLAINTEXT://<your_ip>:9092
[可选]修改启动脚本
Kafka 默认需要 1G 内存,如果内存不足,Kafka 无法启动,特别是对于 1G 的云服务器。可以修改启动脚本来调整内存配置:
vim /usr/local/kafka/kafka_2.11-2.4.1/bin/kafka-server-start.sh
找到以下内容:
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
# 默认是1G
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
修改为:
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
# 修改为 256M
export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
fi
启动 Zookeeper
参考 此链接 安装和启动 Zookeeper。
启动 Zookeeper:
sh /usr/local/zookeeper/bin/zkServer.sh start
后台启动 Kafka
使用以下命令后台启动 Kafka:
sh /usr/local/kafka/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.11-2.4.1/config/server.properties &
查看启动日志
通过查看 Kafka 日志来确认是否启动成功:
tail -f /usr/local/kafka/kafka_2.11-2.4.1/logs/server.log
停止 Kafka
使用以下命令停止 Kafka:
sh /usr/local/kafka/kafka_2.11-2.4.1/bin/kafka-server-stop.sh
高级配置和优化
调整线程数
Kafka 允许配置用于处理网络请求、日志和 I/O 操作的线程数。在高负载环境下,可以根据服务器硬件资源适当调整这些参数:
num.network.threads=3
num.io.threads=8
监控和管理
Kafka 提供 JMX 接口用于监控。可以在启动脚本中添加以下配置来启用 JMX 监控:
export JMX_PORT=9999
然后,可以使用 JConsole 或者其他 JMX 客户端连接到 Kafka 进程,监控其运行状态和性能指标。
日志压缩
Kafka 支持日志压缩功能,通过设置 log.cleanup.policy=compact 启用。日志压缩可以显著减少存储空间使用,但可能会增加 CPU 和 I/O 负载。
数据持久化
为了保证数据的可靠性,可以调整 log.retention.hours 和 log.retention.bytes 参数来控制日志保留时间和最大大小:
log.retention.hours=168 # 日志保留时间为 7 天
log.retention.bytes=1073741824 # 每个日志分片最大 1GB
网络延迟优化
在多机环境中,可以通过调整 socket.send.buffer.bytes 和 socket.receive.buffer.bytes 参数优化网络延迟:
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
通过以上配置和优化,Kafka 可以在不同的硬件和负载条件下表现得更加稳定和高效。
更多推荐


所有评论(0)