勿以浮沙筑高台
搭建准备搭建zookeeper集群。因为kafka是依赖于zookeeper的。
搭建流程见文章:
Linux下配置Zookeeper集群
1.下载kafka
记得先启动zookeeper集群
下载地址: http://kafka.apache.org/downloads.html
mdkir -p /usr/app/kafka
cd /usr/app/kafka
wget https://mirrors.bfsu.edu.cn/apache/kafka/2.8.0/kafka_2.12-2.8.0.tgz
--2021-07-17 16:41:46-- https://mirrors.bfsu.edu.cn/apache/kafka/2.8.0/kafka_2.12-2.8.0.tgz
2.解压文件
tar xf kafka_2.12-2.8.0.tgz
3.创建日志文件夹修改配置文件
cd /usr/app/kafka/kafka
mkdir logs
cd config/
vi server.properties
4.配置service.properties文件
这里主要配置的就是zookeeper.connect属性和log.dirs日志文件路径,另外原文件没有delete.topic.enable属性,需要手动添加进去
#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=/usr/app/kafka/kafka/logs
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接Zookeeper集群地址
zookeeper.connect=192.168.3.199:2181,192.168.3.197:2181,192.168.3.198:2181
5.配置运行环境
vi /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/usr/app/kafka/kafka
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
6.将配置好的文件拷贝到另外2台
scp -r /usr/app/kafka/kafka root@192.168.31.199:/usr/app/kafka/kafka
scp -r /usr/app/kafka/kafka root@192.168.31.198:/usr/app/kafka/kafka
scp -r /etc/profile root@192.168.31.199:/etc/profile
scp -r /etc/profile root@192.168.31.198:/etc/profile
#更改后记住刷新配置文件
source /etc/profile
7.更改serverconfig中的全局唯一编号
#broker的全局唯一编号,不能重复
broker.id=0
8.依次启动三台电脑
kafka-server-start.sh config/server.properties &
9.查看是否启动成功
只能登录ZK看
# 到zk的bin文件夹下
./zkCli.sh
ls /brokers/ids
看见有topics节点并且ids里面有我们配置的节点信息,就代表我们部署成功啦!!!!
10.关闭kafka
kafka-server-stop.sh stop
kafka基本命令
记住启动起来的三台机子不要退出,命令在新开的地方窗口执行。
查看当前服务器中的所有topic频道
kafka-topics.sh --zookeeper 192.168.31.198:2181 --create --replication-factor 3 --
partitions 3 --topic second
选项说明:
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
创建topic
kafka-topics.sh --zookeeper 192.168.31.198:2181 --create --replication-factor 3 --
partitions 3 --topic second
选项说明:
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
删除topic
kafka-topics.sh --zookeeper 192.168.31.198:2181 --delete --topic second
# 需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
发送消息
kafka-console-producer.sh --broker-list 192.168.31.197:9092 --topic second
>hello world
>itstar itstar
订阅频道,消费消息
kafka-console-consumer.sh --bootstrap-server 192.168.31.199:9092 --from-beginning -
-topic second
--from-beginning:会把first主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。