阅读量:75
配置Ubuntu上的Kafka集群涉及多个步骤,包括安装Java、Zookeeper、Kafka本身,配置相关文件,以及启动服务。以下是一个详细的步骤指南:
环境准备
- 安装Java:Kafka需要Java运行环境,推荐使用JDK 8。
sudo apt update
sudo apt install openjdk-8-jdk
java -version
- 安装Zookeeper:Kafka依赖Zookeeper管理集群元数据。
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.15/zookeeper-3.4.15.tar.gz
tar -xzf zookeeper-3.4.15.tar.gz
sudo mv zookeeper-3.4.15 /usr/local/zookeeper
配置Zookeeper
- 编辑zoo.cfg文件:
sudo cp /usr/local/zookeeper/conf/zoo.cfg /usr/local/zookeeper/conf/zoo.cfg.samples
sudo vi /usr/local/zookeeper/conf/zoo.cfg
- 修改配置项:
tickTime=2000
dataDir=/usr/local/zookeeper/data
clientPort=2181
- 启动Zookeeper:
sudo /usr/local/zookeeper/bin/zkServer.sh start
- 验证Zookeeper是否启动成功:
sudo netstat -nap | grep 2181
安装Kafka
- 下载并解压Kafka:
wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
tar -xzf kafka_2.12-3.6.2.tgz
sudo mv kafka_2.12-3.6.2 /usr/local/kafka
- 配置Kafka:
cd /usr/local/kafka/config
sudo cp server.properties server-1.properties
sudo cp server.properties server-2.properties
sudo cp server.properties server-3.properties
# 编辑 server-1.properties
broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.1.1:9092
log.dirs=/tmp/kafka-logs-1
zookeeper.connect=192.168.1.2:2181,192.168.1.3:2181,192.168.1.4:2181
# 编辑 server-2.properties
broker.id=2
listeners=PLAINTEXT://:9093
advertised.listeners=PLAINTEXT://192.168.1.1:9093
log.dirs=/tmp/kafka-logs-2
# 编辑 server-3.properties
broker.id=3
listeners=PLAINTEXT://:9094
advertised.listeners=PLAINTEXT://192.168.1.1:9094
log.dirs=/tmp/kafka-logs-3
启动Kafka集群
- 在每个Kafka broker上启动Kafka服务:
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-1.properties
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-2.properties
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-3.properties
验证集群
- 创建一个测试主题以验证集群是否正常运行:
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server your_server_ip:9092 --replication-factor 3 --partitions 3
- 列出主题以确认创建成功:
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server your_server_ip:9092
- 生产者和消费者消息以进一步验证:
# 生产者
sudo /usr/local/kafka/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server your_server_ip:9092
# 消费者
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server your_server_ip:9092