一 kafka概述
1 kafka定义
kafka是一个分布式的基于发布、订阅模式的消息队列,广泛应用于大数据实时处理领域。
2 消息队列
相当于一个中间商,在客户端和服务端中间建立一个缓冲并能处理数据的组件
消息队列的好处:
①解耦
②缓冲
③异步处理
④削峰
⑤可恢复性
二 kafka快速入门
1 安装部署
①kafka是分布式的,所以需要配置在多台服务器上,且必须要有zookeeper的支持,需要先启动zookeeper服务才能启动kafka服务
②kafka下载:
http://kafka.apache.org/downloads.html
③集群部署:
解压好安装包后,修改配置文件server.properties
#broker的全局唯一编号,不能重复
broker.id=0
#处理网络请求的线程数量
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=hadoop102:2181,hadoop103:2181,hadoop104:2181
④配置环境变量
2 kafka命令行操作
①增加topic
kafka-topics.sh --bootstrap-server hadoop102:9092 --create [--replication-factor 2] [--partitions 1] --topic first
选项说明:
–topic 定义topic名
–replication-factor 定义副本数
–partitions 定义分区数
②删除topic
kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first
③修改topic
修改分区数
kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partition 2
④查找topic
查找该集群中所有的topic
kafka-topics.sh --bootstrap-server hadoop102:9092 --list
显示指定topic的详细信息
kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
⑤发送消息
kafka-console-producer.sh --broker-list hadoop102:9092 --topic first
⑥消费消息
kafka-console-consumer.sh --bootstrap-server hadoop102:9092 [--from-beginning] --topic first
--from-beginning:会把主题中现有的所有的数据都读取出来