❤️爆肝三万字,40道Kafka大厂高频面试题,涨薪全靠它!

博主闭关两个多月,查阅了数百万字的大数据资料,结合自身的学习和工作经历,总结了大厂高频面试题,里面涵盖几乎所有我见到的大数据面试题目。

《大厂高频面试题系列》目前已总结4篇文章,且在持续更新中✍。文中用最直白的语言解释了Hadoop、Hive、Kafka、Flume、Spark等大数据技术和原理,细节也总结的很到位,是不可多得的大数据面试宝典,强烈建议收藏,祝大家都能拿到心仪的大厂offer🏆。下面是相关的系列文章:

文章目录

1. 请介绍一下kafka是什么

Kafka是一个分布式的基于发布/订阅模式的消息队列,使用Scala编写,主要应用于大数据实时处理领域。离线场景一般是结合flume进行使用。

2. 请说明Kafka的基础架构

(1)Producer :消生产者,就是向kafka中发送消息(写入消息)

(2)consumer: 消费者,向kafka中拉取消息进行消费

(3)Consumer Group (CG):消费者组,由多个consumer组成。消费者组。消费者组中有多个消费者,一般是一个消费者组消费一个topic,消费者组中的所有的消费者就可以各自消费对应的分区数据就可以了。

一般group中的consumer的个数和Topic的分区数相等。如果group中的consumer大于Topic的分区数,多余的消费者不会工作。 如果group中的consumer小于Topic的分区数,则需要一个consumer去消费多个分区。

(4)broker: kafka的节点,partition数据就是保存在broker上面

(5)Topic(主题) :在工作中一般是一个业务一个主题,好处就是数据分类之后比较好处理。

topic是逻辑上的概念,而partition是物理上的概念,parrtition才是真正存储数据的。

(6)Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。这样做有2个好处(即分区的原因):

  • 实现数据的分布式存储
  • 提高并行度以及吞吐量

(7)Replica:副本,提高partition的数据的高可用。一个topic的每个分区都有若干个副本,其中包含一个leader和若干个follower。

(8)leader:每个分区多个副本的“主”,生产者向partition中写入消息的时候也是向leader写入,消费者消费partition数据的时候是找leader消费。

(9)follower:每个分区多个副本中的“从”,实时从leader中同步数据,保持和leader数据的同步。leader发生故障时,某个follower会成为新的leader。

(10)offset:用来标识消费者上次消费到了partition的哪条数据(每个消费者都有自己的offset)

3. Kafka的常用操作指令

(1)创建topic

kafka-topic.sh --create --topic topic名称 --partitions 分区数 --replication-factor 副本数 --bootstrap-server borker节点:端口<9092>
说明:
--create 表示是创建topic
--bootstrap-server 根据输入的broker来找到kafka集群
注意: 副本数不能不要大于kafka集群的borker个数(多余的副本没什么用)
--partitions  --replication-factor 这两个参数在创建topic的时候可以不用写,默认值都是1
样例:
kafka-topics.sh --create --topic first --bootstrap-server wxler1:9092,wxler2:9092 --partitions 3 --replication-factor 3

(2)查看kafka集群所有的topic

kafka-topic.sh --list --bootstrap-server borker节点:端口<9092>

(3)查看某一个topic的信息

kafka-topic.sh --describe --topic topic名称 --bootstrap-server borker节点:端口<9092>
说明:
可以查看的信息包含topic的分区数、副本数、leader在哪个broker上。follwer在哪些broker节点上。ISR列表
样例:
[wxler@wxler1 ~]$ kafka-topics.sh --describe --bootstrap-server wxler1:9092,wxler2:9092 --topic first
Topic: first	PartitionCount: 3	ReplicationFactor: 3	Configs: segment.bytes=1073741824
	Topic: first	Partition: 0	Leader: 3	Replicas: 3,1,2	Isr: 3,1,2
	Topic: first	Partition: 1	Leader: 1	Replicas: 1,2,3	Isr: 1,2,3
	Topic: first	Partition: 2	Leader: 2	Replicas: 2,3,1	Isr: 2,3,1

(4)修改topic(只能够修改topic的分区,而且是只能增加分区,不能够减少分区)

kafka-topic.sh --alter --topic topic名称 --partitions 分区数 --bootstrap-server borker节点:端口<9092>

(5)模拟生产者

kafka-console-producer.sh --topic topic名称 --broker-list borker节点:端口<9092>

(6)模拟消费者

kafka-console-consumer.sh --topic topic名称 --bootstrap-server borker节点:端口<9092>

(7)查看kafka数据

kafka-dump-log.sh --files kafka数据文件 --print-data-log

  • 8
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一些 Kafka 高频面试题: 1. 什么是 KafkaKafka 是一个分布式流处理平台,主要用于处理实时数据流和实时数据流的存储。它使用发布/订阅模式,支持高吞吐量、持久性和容错性。 2. Kafka 的主要组件有哪些? Kafka 的主要组件包括生产者、消费者、Broker、主题、分区和副本。 3. Kafka 中的分区有什么作用? 分区是 Kafka 中的一个重要概念,它允许将主题分成多个部分,以便实现水平扩展和并行处理。每个分区都有一个唯一的标识符,称为分区 ID。 4. Kafka 的消息保证模式有哪些? Kafka 提供两种消息保证模式:at least once 和 exactly once。at least once 模式确保每条消息最少被传递一次,而 exactly once 模式确保每条消息恰好被传递一次。 5. Kafka 的消息保存策略有哪些? Kafka 的消息保存策略包括删除与保留。删除策略包括删除旧的消息和删除无用的主题,保留策略包括保留最近的消息和保留所有消息。 6. Kafka 的主题是如何分配到分区的? Kafka 使用一种称为哈希分区的算法,将主题中的消息均匀分配到分区中。该算法使用消息键和分区数来计算消息应该被分配到哪个分区中。 7. Kafka 中的消费者组是什么? 消费者组是一组消费者,用于消费同一主题的消息。Kafka 使用消费者组来实现负载平衡和故障转移。 8. Kafka 中的 ISR 是什么? ISR(In-Sync Replicas)是指与主副本同步的备份副本。当主副本失效时,ISR 中的任何一个备份副本都可以被提升为新的主副本。 9. Kafka 中的副本同步是如何实现的? Kafka 中的副本同步是通过使用复制管来实现的。主副本将消息写入其本地日志中,并将消息发送到其所有备份副本的复制管中。备份副本将消息写入其本地日志中,并在收到确认后将确认发送回主副本。 10. Kafka 中的消费者如何处理消息的重复? 在 at least once 模式下,消费者可能会收到重复的消息。为了避免重复处理,消费者可以使用消息的唯一标识符来检查消息是否已经被处理过。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雷恩Layne

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

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

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

打赏作者

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

抵扣说明:

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

余额充值