Kafka初级
前言
关于kafka的集群安装这里就先跳过,如果需要相关资料以及学习视频的可以在留言下留下联系信息(邮箱、微信、qq都可),我们直接从kafka的学习开始,这是初级阶段,这篇博主主要讲述kafka的命令行操作。
1.topic的增删改查
-
创建主题:
切换到kafka的相关目录,进行以下命令行操作
bin/kafka-topics.sh --create --bootstrap-server hadoop102:9092 --replication-factor 2 --partitions 3 --topic test2
参数解释
-
–bootstrap-server:该参数在kafka2.2及以上进行引进,即让kafka的topic信息存储在kafka自身,在2.2之前这个参数使用zookeeper代替
-
–replication-factor 设置kafka主题备份数
-
–partitions 设置分区数
-
–topic kafka创建主题名称
-
-
查询kafka的集群描述:
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --topic foo --describe
-
查看已经创建的topic信息:
bin/kafka-topics.sh --describe --topic test2 --bootstrap-server hadoop102:9092
此时命令行会给出相关内容
Topic:test2 PartitionCount:3 ReplicationFactor:2 Configs:min.insync.replicas=1,segment.bytes=1073741824,retention.ms=604800000,max.message.bytes=1000000,min.cleanable.dirty.ratio=0.5,unclean.leader.election.enable=false,retention.bytes=-1,delete.retention.ms=604800000 Topic: test2 Partition: 0 Leader: 82 Replicas: 82,84 Isr: 82,84 Topic: test2 Partition: 1 Leader: 83 Replicas: 83,82 Isr: 83,82 Topic: test2 Partition: 2 Leader: 84 Replicas: 84,83 Isr: 84,83
topic、partition、leader、replicas、isr相关信息都很清晰
-
topic列表查询:
bin/kafka-topics.sh --list --bootstrap-server hadoop102:9092
-
topic分区扩容:
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic test --partitions 4
-
删除topic:
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic test
以上操作属于kafka topic相关的最基本操作,也是入门kafka的第一步。
2.生产者的消息发送
在kafka 的topic创建完毕之后,便是后续对topic的进行生产使用,topic这时候的作用便是一个标签,在该topic的影响下生产者生产出来想对应的数据,比如:我们生产球拍是一个topic,生产球又是一个topic。
此时,我们运行生产者对发送过来的消息进行相对应的topic生产
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
有人会问,这个broker-list是什么参数
别急让我们看看官方是怎么定义的:
Broker:
已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker)。 消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。
说白了,我们把生产的消息存放在了这个broker里,而通过-list参数,你可以存放在多个服务器中。
通过上述命令,我们运行生产者,此时我们可以在控制台进行消息的发送。就像下面的截图一样。
3.消费者消费数据
数据的生产,不能让它没有用武之地啊,于是我们需要消费信息,也就是接下来的工具人—consumer(消费者)
此时,我们在开一个终端,对刚刚生产的数据进行消费。
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic test2 --from-beginning
当我们打开消费者时,会发现,生产的数据出现了!
他以一行一行的形式出现了!
一行即一条消息。
有人会问,控制台里生产,控制台里消费,不都是控制台吗,干嘛多此一举。
别急,在后续当你遇到TB,PB级的数据需要从一个地方运输到另一个地方的时候,你会发现kafka的神秘之处。
可以使用Ctrl-C停止消费者客户端。
通过上述案例,你对kafka有没有一个初步的认知呢?关注我,带你深入了解大数据。想要资料的可以在评论区留言哦!