麒麟操作系统-06-Kafka3.0.0安装与部署
在我们大数据项目中,一定少不了Kafka,它是一种高吞吐量、分布式的消息队列系统,可以处理大量的数据流,具有高可靠性和可扩展性。
Kafka的设计理念是基于发布-订阅模型,它可以处理数万个并发事件流。生产者将消息发布到一个或多个数据流主题(topic),消费者可以选择订阅一个或多个主题,并接收其中的消息。Kafka将消息以日志的形式存储在磁盘上,并使用分区(partition)的方式对消息进行分布式处理和存储。
开搞开搞。
1、解压
tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/server
2、配置环境变量
vim /etc/profile
#末尾添加内容
export KAFKA_HOME=/opt/server/kafka-3.0.0
export PATH=PATH=$PATH:$KAFKA_HOME/bin
#加载环境变量
source /etc/profile
3、编辑kafka安装目录的config目录下的 server.properties
vim config/server.properties
#大部分配置不需要修改,只需要修改如下:
#broker.id每个节点都不一样,如0,1,2
broker.id=0
#该目录kafka会自动创建
log.dirs=/opt/server/kafka-3.0.0/datas
#zookeeper地址
zookeeper.connect=node1:2181,node2:2181,node3:2181
4、分发kafka安装目录(需要修改broker.id)和环境变量
#分发安装目录
scp -r kafka-3.0.0/ node2:$PWD
scp -r kafka-3.0.0/ node3:$PWD
#修改每个节点的broker.id。
#分发环境变量
scp /etc/profile node2:/etc/
scp /etc/profile node3:/etc/
#三台全都刷新环境变量
source /etc/profile
5、启动
每一台都需要单独启动,命令如下:
kafka-server-start.sh -daemon config/server.properties
类似的每台都需要单独启动的组件,我们都编辑一个脚本,利用ssh进行脚本一键启动。
在主节点 ~/bin
下写脚本:vim ~/bin/kf.sh
#!/bin/bash
case $1 in
"start"){
for i in node1 node2 node3
do
echo ---------Kafka $i 启动----------
ssh $i "/opt/server/kafka-3.0.0/bin/kafka-server-start.sh -daemon /opt/server/kafka-3.0.0/config/server.properties"
done
};;
"stop"){
for i in node1 node2 node3
do
echo ---------Kafka $i 关闭----------
ssh $i "/opt/server/kafka-3.0.0/bin/kafka-server-stop.sh"
done
};;
esac
赋予权限
chmod 777 kf.sh
任意路径下
kf.sh start
#jps观察进程
jps
#观察是否有进程名为 Kafka
6、基本命令和功能测试
-
创建topic test1
kafka-topics.sh --create --bootstrap-server node1:9092,node2:9092,node3:9092 --replication-factor 1 --partitions 1 --topic test1
-
查看已有的topic
kafka-topics.sh --list --bootstrap-server node1:9092,node2:9092,node3:9092
-
创建生产者生产数据
kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test1
-
创建消费者消费数据
kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic test1 --from-beginning
-
测试
- node1上:创建test主题,创建生产者;
- node2或node3上:创建消费者;
- 在生产者上生产数据,观察消费者是否消费到数据。
注意:
kafka的新旧版本中的部分命令有所不同:
新:–bootstrap-server node1:9092,node2:9092,node3:9092
旧:–zookeeper node1:2181,node2:2181,node3:2181/kafka
另外,在kafka3版本中,有KRaft支持对zookeeper的弱依赖或无依赖。在kafka2的版本中,对kafka都是强依赖。这里选用3版本,但还是依赖了zookeeper,以防未来某些特定情况下有脱离zookeeper的需求,直接切换即可,无需卸载重新安装部署。
启动kafka之前,先启动zk。