目录
一.准备工作
- 需要安装zookeeper
- 下载安装包
可以去官网下载你们需要的版本 下载地址:Apache Kafka
我使用的是kafka_2.12-2.4.1.tgz
二.安装步骤
1.上传并解压
将kafka的gz包上传到虚拟机的/opt/software目录,然后解压到/opt/servers
[root@master ~]# tar -zxvf /opt/software/kafka_2.12-2.4.1.tgz -C /opt/servers/
2.重命名
为了方便,我把解压后的文件重命名为kafka
[root@master ~]# cd /opt/servers/
[root@master servers]# mv /opt/servers/kafka_2.12-2.4.1 /opt/servers/kafka
3.配置环境变量
[root@master servers]# vi /etc/profile
#添加以下内容
export KAFKA_HOME=/opt/servers/kafka
export PATH=$PATH:$KAFKA_HOME/bin
按:wq保存退出,记得生效:source /etc/profile
4.修改配置文件
进入kafka的config目录,修改server.properties文件
[root@master servers]# cd ./kafka/config/
[root@master config]# vi ./server.properties
设置kafka broker编号,每个broker id都不能相同。
设置Zookeeper集群地址
设置日志目录
5.分发至另外两台虚拟机
[root@master ~]# scp -r /opt/servers/kafka/ slave1:/opt/servers/
[root@master ~]# scp -r /opt/servers/kafka/ slave2:/opt/servers/
分发环境变量,分发完成后分别在slave1,slave2生效:source /etc/profile
[root@master ~]# scp -r /etc/profile slave1:/etc/profile
[root@master ~]# scp -r /etc/profile slave2:/etc/profile
然后需要分别修改这两台kafka的config/server.properties文件,将broker.id分别改为 1,2,因为broker.id不能相同。
三.启动 测试kafka
1.启停kafka
注意:在启动kafka之前要先启动zookeeper
#启动kafka
[root@master ~]# kafka-server-start.sh -daemon /opt/servers/kafka/config/server.properties
#关闭kafka
[root@master ~]# kafka-server-stop.sh /opt/servers/kafka/config/server.properties
2.创建kafka主题
创建一个名为test的主题,分区数为4
[root@master ~]# kafka-topics.sh --create --topic test --zookeeper master:2181,slave1:2181,slave2:2181 --partitions 4 --replication-factor 2
3.查看创建的主题
[root@master ~]# kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
4.kafka生产者发送消息
使用kafka生产者向test主题发送消息
[root@master ~]# kafka-console-producer.sh --topic test --broker-list master:9092,slave1:9092,slave2:9092
5.kafka消费者接受消息
使用kafka消费者消费test主题的数据 --from-beginning表示从头消费
[root@master ~]# kafka-console-consumer.sh --topic test --bootstrap-server master:9092,slave1:9092,slave2:9092 --from-beginning
可以开两个窗口,一边开启生产者发送消息,一边开启消费者接受消息
6.删除主题
[root@master ~]# kafka-topics.sh --delete --topic test --zookeeper master:2181,slave1:2181,slave2:2181
删除主题时如果出现以下问题:
解决办法:在config/server.properties添加 delete.topic.enable=true