在CentOS系统上配置Kafka的步骤如下:
首先,确保你的系统上安装了Java。可以使用以下命令安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel -y
安装完成后,验证Java是否安装成功:
java -version
从Apache Kafka官网下载最新版本的Kafka,然后解压到指定目录。例如,下载Kafka 3.5.2版本:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zxvf kafka_2.12-3.5.2.tgz -C /usr/local/kafka
在Kafka 2.8.0及以后的版本中,引入了Kraft模式,使得Kafka可以不依赖外部Zookeeper运行。如果需要使用Zookeeper,可以按照以下步骤进行配置:
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/zookeeper-3.8.0-bin.tar.gz
tar -zxvf zookeeper-3.8.0-bin.tar.gz
/etc/profile
文件,添加以下内容:export ZK_HOME=/path/to/your/zookeeper-3.8.0
export PATH=$PATH:$ZK_HOME/bin
使配置生效:
source /etc/profile
$ZK_HOME/conf/zoo.cfg
,设置数据目录和客户端连接端口等配置。进入Kafka的 config
目录,编辑 server.properties
文件。每个节点的配置可能会有所不同,但以下是一些基本的配置项:
broker.id
: 唯一标识符,每个broker必须不同。listeners
: 监听地址和端口。log.dirs
: 日志存储目录。zookeeper.connect
: Zookeeper连接字符串。示例配置:
broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
在另一个终端窗口中启动Zookeeper服务:
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
启动Kafka服务:
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
创建一个Topic来测试Kafka是否正常工作:
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
/opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
在控制台中输入消息并按回车键发送。
/opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
你应该能够看到之前发送的消息。
如果你的服务器有防火墙,确保开放Kafka使用的端口(默认是9092):
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
如果你需要配置一个多节点的Kafka集群,你需要为每个节点分配唯一的 broker.id
,并配置 listeners
和 advertised.listeners
以指向正确的IP地址和端口。还需要配置 zookeeper.connect
以包含所有节点的地址。