在本指南中,我们将手把手教你如何在单机环境中部署 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 在同一台机器上,单机版可以使用默认配置启动。若需要自定义配置,建议修改以下几项:

  1. 备份原配置文件
    在修改配置文件前,建议先备份一下原配置文件:

    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
    
  2. 修改日志目录
    默认日志目录是 log.dirs=/tmp/kafka-logs,/tmp 下的文件会被系统定期清理,建议修改成自己的目录:

    log.dirs=/usr/local/kafka/kafka_2.11-2.4.1/kafka-logs
    
  3. 配置 Zookeeper
    Zookeeper 默认配置是 zookeeper.connect=localhost:2181,如果 Kafka 和 Zookeeper 在同一台机器上可以不修改。

  4. 监听器配置 (listeners)
    默认监听 localhost:9092,如果服务器有多个网卡,可以配置多个监听器,用逗号分隔。如果配置为 0.0.0.0:9092,表示监听所有网卡:

    listeners=PLAINTEXT://0.0.0.0:9092
    
  5. 对外公布的监听器 (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.hourslog.retention.bytes 参数来控制日志保留时间和最大大小:

log.retention.hours=168  # 日志保留时间为 7 天
log.retention.bytes=1073741824  # 每个日志分片最大 1GB

网络延迟优化

在多机环境中,可以通过调整 socket.send.buffer.bytessocket.receive.buffer.bytes 参数优化网络延迟:

socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400

通过以上配置和优化,Kafka 可以在不同的硬件和负载条件下表现得更加稳定和高效。

Logo

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

更多推荐