搭建kafka环境
1.解压kafka资源包
(将kafka上传到根路径)tar -xvzf kafka_2.12-2.2.0.tgz -C apps
2.在apps/kafka_12-2.2.0路径下创建logs文件夹
mkdir logs
3.修改配置文件
[root@hdp-1 kafka_2.12-2.2.0]# cd config/
[root@hdp-1 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=/root/apps/kafka_2.12-2.2.0/logs
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接Zookeeper集群地址
zookeeper.connect=hdp-1:2181,hdp-2:2181,hdp-3:2181
4.配置kafka环境变量
[root@hdp-1 ~]# vi /etc/profile
将我的kafka环境变量修改成这个
#KAFKA
export KAFKA_HOME=/root/apps/kafka_2.12-2.2.0
export PATH=$PATH:$KAFKA_HOME/bin
5.将文件拷贝到其他的2台机器中
拷贝kafka的环境变量
scp /etc/profile hdp-2:/etc/profile
scp /etc/profile hdp-3:/etc/profile
拷贝kafka安装包
scp kafka_2.12-2.2.0/ hdp-2: /root/apps/
scp kafka_2.12-2.2.0/ hdp-3: /root/apps/
6.修改配置文件
分别在hdp-1和hdp-2上修改 /root/apps/kafka_2.12-2.2.0/config/server.properties中的broker.id=1、broker.id=2
7. 启动集群:依次在hdp-1、hdp-2、hdp-3节点上启kafka
cd apps/kafka_2.12-2.2.0/bin
[root@hdp-1 bin]# ./kafka-server-start.sh ../config/server.properties &
[root@hdp-2 bin]# ./kafka-server-start.sh ../config/server.properties &
[root@hdp-3 bin]# ./kafka-server-start.sh ../config/server.properties &
- 关闭集群
[root@hdp-1 bin]# ./kafka-server-stop.sh stop
[root@hdp-1 bin]# ./kafka-server-stop.sh stop
[root@hdp-1 bin]# ./kafka-server-stop.sh stop
Kafka使用
一、环境准备
- 启动zookeeper
- 启动kafka
二、kafka指令的使用
1.查看当台机器中所有的topics
[root@hdp-1 bin]# ./kafka-topics.sh \
--zookeeper hdp-1:2181 \
--list
2.创建topics
[root@hdp-1 bin]# ./kafka-topics.sh \
--zookeeper hdp-1:2181 \
--create --replication-factor 3 \
--partitions 1 --topic first
3.选项说明
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
4.删除topic
[root@hdp-1 bin]# ./kafka-topics.sh \
--zookeeper hdp-1:2181 \
--delete \
--topic first
注意:需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
5.发送消息
[root@hdp-1 bin]#./kafka-console-producer.sh \
--broker-list hdp-1:9092 \
--topic first
6.消费消息
再打开一个hdp-1
[root@hdp-1 bin]#./kafka-console-consumer.sh \
--bootstrap-server hdp-3:9092 \
--from-beginning \
--topic first
注意:--from-beginning:会把first主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。
两台机器就会一台生产消息,一台消费消息
7.查看topic的情况
[root@hdp-1 bin]# ./kafka-topics.sh \
--zookeeper hdp-1:2181 \
--describe \
--topic first