本文指导您如何在linux系统上部署apache kafka。 我们将涵盖环境准备、Java安装、zookeeper集群配置以及Kafka的安装和测试。
一、准备工作
- 操作系统: 选择合适的Linux发行版,例如centos或ubuntu。
- 服务器: 确定用于部署Kafka的服务器IP地址列表 (至少一台用于单节点部署,多台用于集群部署)。
- 软件包: 下载Java JDK、ZooKeeper和Kafka的安装包。 确保版本兼容性。
二、安装Java JDK
根据您的Linux发行版,使用以下命令安装Java 8 JDK (建议使用8,但可根据Kafka版本调整):
-
Ubuntu/debian:
sudo apt update sudo apt install openjdk-8-jdk
-
CentOS/RHEL:
sudo yum install java-1.8.0-openjdk
配置环境变量:编辑/etc/profile文件,添加以下内容,将/path/to/java替换为实际Java安装路径:
export JAVA_HOME=/path/to/java export PATH=$PATH:$JAVA_HOME/bin
运行 source /etc/profile 使配置生效。 使用 java -version 验证安装。
三、部署ZooKeeper集群
-
解压ZooKeeper: 将ZooKeeper安装包解压到 /opt 目录 (或您选择的目录):
tar -zxvf zookeeper-3.4.10.tar.gz -C /opt
-
配置环境变量: 编辑/etc/profile,添加ZooKeeper环境变量,将/path/to/zookeeper替换为实际路径:
export ZOOKEEPER_HOME=/path/to/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin
运行 source /etc/profile 使配置生效。
-
配置zoo.cfg: 编辑/opt/zookeeper/conf/zoo.cfg 文件,配置以下参数 (根据您的服务器数量和IP地址调整 server.* 配置):
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper/data # 创建该目录 clientPort=2181 maxClientCnxns=60 dataLogDir=/data/zookeeper/log # 创建该目录 server.1=server01:2888:3888 server.2=server02:2888:3888 server.3=server03:2888:3888
-
打开防火墙端口: 允许ZooKeeper使用的端口通过防火墙 (2181, 2888, 3888):
firewall-cmd --add-port=2181/tcp --permanent firewall-cmd --add-port=2888/tcp --permanent firewall-cmd --add-port=3888/tcp --permanent firewall-cmd --reload
-
创建myid文件: 在每个ZooKeeper服务器的/data/zookeeper/data目录下创建myid文件,文件内容为该服务器的ID (1, 2, 3 …)。
-
启动ZooKeeper: 在每个ZooKeeper服务器上运行: ./bin/zkServer.sh start
四、安装和配置Kafka
-
解压Kafka: 将Kafka安装包解压到 /opt 目录:
tar -zxvf kafka_2.12-3.5.2.tgz -C /opt
-
配置server.properties: 编辑/opt/kafka/config/server.properties 文件,配置以下参数 (调整 broker.id 和 zookeeper.connect 以匹配您的环境):
broker.id=0 port=9092 host.name=localhost log.dirs=/opt/kafka/kafka_2.12-3.5.2/logs # 创建该目录 zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 # 替换为ZooKeeper服务器地址
-
启动Kafka: 运行 ./bin/kafka-server-start.sh config/server.properties
五、创建Topic和测试
-
创建Topic: 使用以下命令创建一个名为 test 的Topic:
./bin/kafka-topics.sh --create --zookeeper zookeeper1:2181 --replication-factor 1 --partitions 1 --topic test ``` (将 `zookeeper1:2181` 替换为ZooKeeper连接字符串)
-
列出Topic: 使用 ./bin/kafka-topics.sh –zookeeper zookeeper1:2181 –list 查看已创建的Topic。
-
生产者测试: 在一个终端运行生产者:
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
-
消费者测试: 在另一个终端运行消费者:
./bin/kafka-console-consumer.sh --zookeeper zookeeper1:2181 --topic test --from-beginning
完成以上步骤后,您已在Linux上成功部署Kafka。 请记住将占位符替换为您的实际路径和IP地址。 对于集群部署,请重复步骤三和四,并在 server.properties 和 zoo.cfg 中正确配置所有服务器。