一、安装及配置
- jar包下载Apache Kafka
- 解压安装包
tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/
- 修改解压后的文件名
mv kafka_2.11-2.4.1/ kafka
- 在kafka主目录下新建logs文件,存放日志文件
mkdir logs
- 修改配置文件
cd config/ vi server.properties
- 配置文件内容
#broker的全局唯一编号,不能重复 broker.id=0 #删除topic功能使能 delete.topic.enable=true #处理网络请求的线程数量 num.network.threads=3 #用来处理磁盘IO的现成数量 num.io.threads=8 #发送套接字的缓冲区大小 socket.send.buffer.bytes=102400 #接收套接字的缓冲区大小 socket.receive.buffer.bytes=102400 #请求套接字的缓冲区大小 socket.request.max.bytes=104857600 #kafka运行日志存放的路径 log.dirs=/opt/module/kafka/logs #topic在当前broker上的分区个数 num.partitions=1 #用来恢复和清理data下数据的线程数量 num.recovery.threads.per.data.dir=1 #segment文件保留的最长时间,超时将被删除 log.retention.hours=168 #配置连接Zookeeper集群地址 zookeeper.connect=hadoop101:2181,hadoop102:2181,hadoop103:2181/kafka
- 配置环境变量
sudo vi /etc/profile.d/my_env.sh #KAFKA_HOME export KAFKA_HOME=/opt/module/kafka export PATH=$PATH:$KAFKA_HOME/bin
- 分发安装包
xsync kafka/
- 修改其他节点的kafka配置文件,只需要修改server.properties文件中的 broker.id,id需要全局唯一。
二、测试
- 启动集群(需要先启动zookeeper)
kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
首先看到hadoop及zookeeper已经启动完毕(jpsall为自写脚本,可以查看所有计算机的进程情况):
通过jpsall命令可以看到集群已启动成功。
- 查看当前服务器所有topic
kafka-topics.sh --list --bootstrap-server hadoop101:9092
- 创建topic
kafka-topics.sh --create --bootstrap-server hadoop101:9092 --topic second --partitions 2 --replication-factor 2
–topic 定义topic名
–replication-factor 定义副本数
–partitions 定义分区数
可以看到已经新创建了一个名为second的topic。
- 发送消息
kafka-console-producer.sh --broker-list hadoop101:9092 --topic second
写入如上信息。 可以继续写入,消费也会实时消费出消息。
- 消费消息
kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --from-beginning --topic second
可以看到显示的数据顺序被打乱。
实时消费出消息。
- 查看某topic详情
kafka-topics.sh --bootstrap-server hadoop101:9092 --describe --topic second
- 删除topic
kafka-topics.sh --bootstrap-server hadoop101:9092 --delete --topic first
可以看到删除first后,服务器只剩下名为second的topic。
- 关闭集群
bin/kafka-server-stop.sh
kafka进程没有啦,需要一个一个到计算机中关闭。