ubuntu

kafka在ubuntu上如何精准配置

小樊
46
2025-10-10 20:56:03
栏目: 智能运维

一、前置准备

  1. 安装Java环境
    Kafka依赖Java运行,推荐使用OpenJDK 8或11(更高版本需确认Kafka兼容性)。

    sudo apt update
    sudo apt install -y openjdk-11-jdk
    java -version  # 验证安装(需显示Java版本信息)
    
  2. 安装Zookeeper
    Kafka通过Zookeeper实现集群协调,需先安装并启动Zookeeper。

    wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
    tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz
    sudo mv apache-zookeeper-3.7.0 /opt/zookeeper
    sudo mkdir -p /opt/zookeeper/data
    

    配置Zookeeper(编辑/opt/zookeeper/conf/zoo.cfg):

    tickTime=2000
    dataDir=/opt/zookeeper/data
    clientPort=2181
    initLimit=5
    syncLimit=2
    

    启动Zookeeper:

    /opt/zookeeper/bin/zkServer.sh start
    netstat -tulnp | grep 2181  # 验证端口是否监听
    

二、Kafka精准配置

  1. 下载并解压Kafka
    从Apache官网下载最新稳定版本(如3.5.2),解压至指定目录:

    wget https://downloads.apache.org/kafka/3.5.2/kafka_2.13-3.5.2.tgz
    tar -xzvf kafka_2.13-3.5.2.tgz
    sudo mv kafka_2.13-3.5.2 /opt/kafka
    
  2. 配置Kafka核心参数(server.properties
    编辑/opt/kafka/config/server.properties,关键参数说明及示例:

    • Broker标识broker.id=0(集群中每个broker需唯一);
    • 监听配置listeners=PLAINTEXT://your_server_ip:9092(本地测试可改为localhost);
    • 对外暴露地址advertised.listeners=PLAINTEXT://your_server_ip:9092(集群节点间需能访问);
    • 日志目录log.dirs=/opt/kafka/logs(需提前创建并授权:sudo mkdir -p /opt/kafka/logs && sudo chown -R kafka:kafka /opt/kafka);
    • Zookeeper连接zookeeper.connect=localhost:2181(集群中需列出所有zk节点,如host1:2181,host2:2181);
    • 分区与副本num.partitions=3(根据并发需求设置,建议与消费者线程数匹配)、default.replication.factor=1(测试环境设为1,生产环境建议≥3);
    • 数据保留策略log.retention.hours=168(保留7天,可根据存储空间调整)、log.retention.bytes=1073741824(单分区最大1GB);
    • 性能优化num.io.threads=8(CPU核心数的50%,处理磁盘IO)、socket.send.buffer.bytes=102400(发送缓冲区大小)、socket.receive.buffer.bytes=102400(接收缓冲区大小)。
  3. 创建Kafka用户及授权
    为Kafka创建专用用户并设置目录权限:

    sudo groupadd kafka
    sudo useradd -g kafka kafka
    sudo chown -R kafka:kafka /opt/kafka
    sudo chmod -R 750 /opt/kafka
    

三、启动与验证

  1. 启动Kafka服务
    以后台模式启动Kafka:

    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
    

    验证Kafka是否运行:

    netstat -tulnp | grep 9092  # 应显示Kafka监听9092端口
    
  2. 测试Topic功能

    • 创建Topic
      /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic test_topic
      
    • 生产消息
      /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
      
    • 消费消息
      /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning
      

四、环境变量配置(可选但推荐)
将Kafka路径添加至系统环境变量,方便全局调用:

echo 'export KAFKA_HOME=/opt/kafka' >> ~/.bashrc
echo 'export PATH=$PATH:$KAFKA_HOME/bin' >> ~/.bashrc
source ~/.bashrc

验证命令:kafka-topics --version(应显示Kafka版本信息)。

五、关键注意事项

0
看了该问题的人还看了