ubuntu

kafka如何在ubuntu上完美配置

小樊
51
2025-10-02 13:32:32
栏目: 智能运维

一、前置准备:安装Java环境 Kafka依赖Java运行环境,推荐使用OpenJDK 11(兼容性更好)。执行以下命令安装:

sudo apt update
sudo apt install -y openjdk-11-jdk
# 验证安装
java -version

确保输出显示Java版本为11及以上。

二、安装并配置Zookeeper(Kafka依赖组件) Kafka需要Zookeeper管理集群元数据,以下是基础配置步骤:

  1. 下载并解压Zookeeper
    从Apache官网下载最新稳定版(如3.7.0),解压至/opt目录:
    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
    
  2. 配置Zookeeper
    创建数据目录并生成默认配置文件:
    sudo mkdir -p /opt/zookeeper/data
    sudo cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
    
    编辑zoo.cfg,设置数据目录和客户端端口:
    sudo nano /opt/zookeeper/conf/zoo.cfg
    
    修改以下内容(关键参数):
    dataDir=/opt/zookeeper/data
    clientPort=2181
    
  3. 启动Zookeeper
    /opt/zookeeper/bin/zkServer.sh start
    # 验证状态
    /opt/zookeeper/bin/zkServer.sh status
    
    若输出显示“Mode: standalone”,则表示启动成功。

三、下载并解压Kafka 从Apache官网下载最新稳定版(如3.7.0),解压至/opt目录:

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzvf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka

四、配置Kafka Broker(核心步骤) 编辑Kafka配置文件/opt/kafka/config/server.properties,设置以下关键参数:

sudo nano /opt/kafka/config/server.properties

五、配置环境变量(可选但推荐) 为方便全局使用Kafka命令,将Kafka路径添加至环境变量:

sudo nano /etc/profile

在文件末尾添加:

export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

使配置生效:

source /etc/profile

六、启动Kafka服务

# 后台启动Kafka
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
# 验证启动状态
ps -ef | grep kafka
# 查看Kafka监听端口
sudo netstat -tulnp | grep 9092

七、测试Kafka功能

  1. 创建Topic
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic test_topic
    
  2. 启动生产者
    /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test_topic
    
    输入测试消息(如“Hello Kafka”)。
  3. 启动消费者
    /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning
    
    应能看到生产者发送的消息。

八、优化配置(提升性能与稳定性)

  1. 操作系统调优
    • 增加文件描述符限制(Kafka需大量文件句柄):
      echo "kafka - nofile 65535" | sudo tee -a /etc/security/limits.conf
      ulimit -n 65535
      
    • 调整内核参数(提升磁盘IO性能):
      sudo sysctl -w vm.swappiness=10
      sudo sysctl -w vm.dirty_background_ratio=5
      sudo sysctl -w vm.dirty_ratio=10
      
  2. Kafka Broker调优
    • 线程池num.network.threads=8(处理网络请求)、num.io.threads=16(处理磁盘IO,建议为CPU核心数的1-2倍);
    • 日志保留log.retention.hours=168(保留7天)、log.segment.bytes=1073741824(单个日志段1GB,避免过多小文件);
    • 压缩compression.type=lz4(减少网络传输开销,提升吞吐量);
    • 批量处理batch.size=1048576(1MB,提升生产者吞吐量)、linger.ms=100(等待100ms批量发送,平衡延迟与吞吐量)。

九、配置开机自启(可选但推荐) 创建systemd服务文件,实现Kafka与Zookeeper开机自动启动:

  1. Zookeeper服务文件
    sudo nano /etc/systemd/system/zookeeper.service
    
    添加以下内容:
    [Unit]
    Description=Zookeeper Service
    After=network.target
    
    [Service]
    Type=forking
    Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    ExecStart=/opt/zookeeper/bin/zkServer.sh start
    ExecStop=/opt/zookeeper/bin/zkServer.sh stop
    User=zookeeper
    Group=zookeeper
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  2. Kafka服务文件
    sudo nano /etc/systemd/system/kafka.service
    
    添加以下内容:
    [Unit]
    Description=Kafka Service
    After=zookeeper.service
    
    [Service]
    Type=forking
    Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
    ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
    ExecStop=/opt/kafka/bin/kafka-server-stop.sh
    User=kafka
    Group=kafka
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启用并启动服务
    sudo systemctl daemon-reload
    sudo systemctl enable zookeeper kafka
    sudo systemctl start zookeeper kafka
    

0
看了该问题的人还看了