麒麟操作系统-06-Kafka3.0.0安装与部署

麒麟操作系统-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。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用以下的docker-compose.yaml文件来部署Kafka: ```yaml version: '3' services: zookeeper: image: 'bitnami/zookeeper:latest' ports: - '2181:2181' environment: - ALLOW_ANONYMOUS_LOGIN=yes kafka: image: 'bitnami/kafka:latest' ports: - '9092:9092' environment: - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 - ALLOW_PLAINTEXT_LISTENER=yes - KAFKA_CREATE_TOPICS=my_topic:1:1 ``` 这个docker-compose.yaml文件定义了两个服务:zookeeper和kafka。zookeeper用于管理kafka集群的状态,而kafka是消息队列和流处理平台。 在这个文件中,我们使用了bitnami提供的官方镜像,可以根据需要调整镜像的版本。 在zookeeper服务中,我们将容器的2181端口映射到主机的2181端口,以便能够通过主机访问zookeeper。同时,我们设置了一个环境变量ALLOW_ANONYMOUS_LOGIN为yes,允许匿名登录。 在kafka服务中,我们将容器的9092端口映射到主机的9092端口,以便能够通过主机访问kafka。我们设置了几个环境变量来配置kafka的连接和监听器。KAFKA_ZOOKEEPER_CONNECT指定了zookeeper的地址和端口,KAFKA_ADVERTISED_LISTENERS指定了kafka的监听地址和端口,ALLOW_PLAINTEXT_LISTENER设置为yes允许使用明文传输。最后,我们使用KAFKA_CREATE_TOPICS创建了一个名为my_topic的topic,分区数为1,副本数为1。 你可以将这个docker-compose.yaml文件保存为一个文件,然后在该文件所在的目录中运行`docker-compose up -d`命令来启动Kafka集群。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m是只奶牛猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值