IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 大数据-kafak常见面试题 -> 正文阅读

[大数据]大数据-kafak常见面试题

1. kafka数据传输的事务定义有哪三种?

① 最多一次(at most once):消息不会被重复发送,最多被传输一次,但也有可能一次都不传输

② 最少一次(at leatest once):消息不会被漏发,最少被传输一次,但也有可能被重复传输

③精确一次(exactly once):不会漏传输也不会重复传输,每个消息都传输一次且有且仅有一次。

2. kafka判断一个节点是否还活着有哪两个条件?

① 节点必须可以和zk相连,zk通过心跳机制检查每个节点的状态

② 如果节点是个follower,则它必须能够及时的同步leader的写操作,并且延时不能太久

3. kafka存储在硬盘上的消息格式是什么?

消息是由一个固定长度的头部和可变长度的字节数组组成。头部包含了一个版本号和CRC32校验码。

①消息长度:4byte(value: 1+4+n)

②版本号:1 byte

③CRC校验码:4 byte

④具体的消息:n byte

4. kafka高效文件存储设计特点

① kafka把topic中的一个parition大文件拆分成多个小文件段,通过多个小文件段,就容易定期清理消费完成文件,减少磁盘的占用;

② 通过索引信息可以快速定位message和确定response的最大大小

③通过index元数据全部映射到memory,可以避免segment file 的IO磁盘操作

④ 通过索引文件稀疏存储,可以大幅降低index文件元数据占用空间

5. kafka Partition的数据如何保存到硬盘

① topic中发多个partition以文件夹的形式保存到broker中,每个分区序号从0递增,且消息有序

② partition文件下有多个segment(xxx.index,xxx.log)

③ segment文件里的大小和配置文件大小一致可以根据要求修改,默认为1G

④如果大小大于1G时,会滚动生成一个新的segment并且以上一个segment最后一条消息的偏移量命名

6. kafka的ack机制

request.required.acks有三个值 0 1 -1
0:生成者不会等待broker的ack,这个延迟最低但是存储保证最弱,当server挂掉时就会丢失数据
1:服务端会等待ack值,leader副本确认收到消息后发送ack,但是leader挂掉后不能确保是否复制完成的新leader也会导致数据丢失
-1:同样在1的基础上,服务端会等待所有的follower的副本都接收到数据后才会收到leader发出的ack,这样数据就不会丢失。

7. kafka消费者如何消费数据

消费者每次消费数据时,都会记录消费的物理偏移量(offset)。等到下次消费时接着从上次的位置消费数据。

8. 消费者负载均衡策略

一个消费者组中的一个分片对应一个消费者组成员,也就是一个分片数据只能被消费者组中的一个消费者消费。但它会尽可能的将数据分发给多个消费者,如果消费者组中的消费者过多,则会有空闲的成员。成员过少,那么有可能消费者消费多个分区的数据。但分区数据尽可能使采用轮询的方式。

9. kafka消费数据的有序性说明

kafka保证数据在一个消费者组内部它是有序的,消费者组与消费者组之间是无序的;

kafka保证同一个partition中,保证数据能够先进先出顺序消费,所以在数据写入时,可以按照key hash写入不同的partition中,保证数据key相同的写入同一个分区中。

10. 你怎么理解kafka ,kafka在大数据架构中承担了什么样的角色?

kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),该项目主要为了处理实时数据提供一个统一的、高吞吐的、低延迟的平台。

在实时数据开发过程中,它主要承担了一个统一的数据缓存和分发的的角色,类似于一个数据的总线的作用。在大批量的数据到来时,kafka可以凭借其高吞吐,高可靠性,对数据起到一个削峰填谷的作用,保证系统的稳定性。同时kafka也能够接受各种各样的数据源,最终汇总到一起,经过处理后发送不同的系统中。

11. kafka 解释下ISR?

Leader 维护了一个动态的 in-sync replica set (ISR),意为和 leader 保持同步的 follower 集合。当 ISR 中的 follower 完成数据的同步之后, leader 就会给 follower 发送 ack。如果 follower长 时 间 未 向 leader 同 步 数 据 , 则 该 follower 将 被 踢 出 ISR , 该 时 间 阈 值 由replica.lag.time.max.ms 参数设定。Leader 发生故障之后,就会从 ISR 中选举新的 leader。

12. kafka 中zk在其中作用?

Kafka 集群中有一个 broker 会被选举为 Controller,负责管理集群 broker 的上下线,所有 topic 的分区副本分配和 leader 选举等工作。Controller 的管理工作都是依赖于 Zookeeper 的。

13. kafka producer 生产者加快速度?

  1. 新增topic分区数,创建多个生产者
  2. 批量提交消息

14. kafka 为什么不支持读写分离?

在 Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leader 副本进行交互的,从 而实现的是一种主写主读的生产消费模型。

15. kafka leader crash 时 ,isr为空怎么办?

kafka在Broker端提供了一个配置参数:unclean.leader.election,这个参数有两个值:
true(默认):允许不同步副本成为leader,由于不同步副本的消息较为滞后,此时成为leader,可能会出现消息不一致的情况。
false:不允许不同步副本成为leader,此时如果发生ISR列表为空,会一直等待旧leader恢复,降低了可用性。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:07:06  更:2021-08-30 12:08:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:56:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码