1)解压安装包
tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/
2)修改kafka目录下config目录下的server.properties文件
vim server.properties
修改为
#broker的全局唯一编号,不能重复
broker.id=0 #====修改唯一编号
#删除topic功能使能,当前版本此配置默认为true,已从配置文件移除
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/datas #======修改到kafka目录datas目录下
#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/kafka #=====修改为自己的集群地址
3)配置环境变量
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
配置完成后分发到集群上然后source
分发kafka安装
4)分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker=2
broker.id每台服务器不能重复
5)启动集群(要先打开zookeeper集群)
分别在hadoop102、hadoop03、hadoop104上的kafka目录下输入
bin/kafka-server-start.sh -daemon config/server.properties
6)关闭集群
分别在hadoop102、hadoop03、hadoop104上的kafka目录下输入
bin/kafka-server-stop.sh stop
9)编写群起脚本
在~/bin目录下创建kf.sh脚本文件
#! /bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------启动 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------停止 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh stop"
done
};;
esac
之后添加权限
chmod 777 kf.sh
kafka命令行操作
1)查看当前服务器中的所有topic
bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka --list
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list
2)创建topic
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --replication-factor 2 --partitions 1 --topic first
选项说明
–topic :定义topic名
–replication-factor : 定义副本数
–partitions:定义分区数
3)删除topic
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first
4)发送消息
bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic first
5)消费消息
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
–from-beginning :会把topic中现有的所以数据都读取出来。
6)查看某个topic的详情
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe –-topic first
7)修改分区数:分区数只能改大,改小会报错
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter –-topic first --partitions 3