ubuntu

Kafka在Ubuntu上的配置技巧有哪些

小樊
40
2025-07-20 12:52:40
栏目: 智能运维

在Ubuntu上配置Apache Kafka涉及多个步骤,包括安装必要的软件、配置环境变量、启动服务以及进行一些高级优化。以下是一个详细的指南:

安装Java环境

首先,确保系统上安装了Java运行环境。可以使用以下命令安装OpenJDK 8:

sudo apt update
sudo apt install openjdk-8-jdk

验证Java安装:

java -version

安装Zookeeper

下载并解压Zookeeper:

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar xvf zookeeper-3.4.6.tar.gz
sudo mv zookeeper-3.4.6 /usr/local/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

验证Zookeeper是否启动成功:

sudo netstat -nap | grep 2181

安装Kafka

下载并解压Kafka:

wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /usr/local/kafka

配置Kafka:

编辑Kafka的server.properties文件:

sudo nano /usr/local/kafka/config/server.properties

主要配置项包括:

示例配置:

broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/usr/local/kafka/data
zookeeper.connect=localhost:2181

启动Kafka:

sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

验证Kafka是否启动成功:

sudo netstat -nap | grep 9092

创建和测试Topic

创建一个测试Topic:

sudo /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

列出所有Topic以确认新Topic已创建:

sudo /usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

生产者和消费者测试:

启动Kafka生产者:

sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

启动Kafka消费者:

sudo /usr/local/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

在生产者的终端输入消息后,消费者终端会显示这些消息,以验证配置是否成功。

环境变量配置

为了方便使用Kafka命令,可以将Kafka的bin目录添加到系统的PATH环境变量中:

echo 'export KAFKA_HOME=/usr/local/kafka' >> /etc/profile
echo 'export PATH=$PATH:$KAFKA_HOME/bin' >> /etc/profile
source /etc/profile

高级配置

性能优化:

开机自启:

创建systemd服务文件:

zookeeper.service

[Unit]
Description=Zookeeper Service
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ExecStart=/usr/local/zookeeper/bin/zookeeper-server-start.sh /usr/local/zookeeper/conf/zoo.cfg
ExecStop=/usr/local/zookeeper/bin/zookeeper-server-stop.sh
User=zookeeper
Group=zookeeper
Restart=always

[Install]
WantedBy=multi-user.target

kafka.service

[Unit]
Description=Apache Kafka server (broker)
After=zookeeper.service

[Service]
Type=forking
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
User=kafka
Group=kafka
Restart=always

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka

0
看了该问题的人还看了