哈喽everyone~
欢迎大家来到魔据教育职场加油站
it培训就选魔据教育
蘑菇君今日为大家分享一波超级干货
希望大家取长补短
知己知彼百战百胜哦!
1.项目里日志的处理量,50w10M左右
2.项目里如何解决Hbase的热点问题,面试官没听明白,后面就直接问热点问题如何解决的答的就举年份例子,加盐,预分区
3.Kafka里是如何leader和follow是如何实现同步的
具体怎么实现同步我确实不知道,我就答的是offset在follow和leader挂了后如何在实现同步的,面试官说我似乎说了又没说明白,后面查了一下,下面就补充吧
4.Hbase读写原理
说了读数据原理,写数据原理就说了和读数据原理差不多也
5.你了解mysql的索引嘛,有哪些是不会用到索引的
答了,索引的分类,like和or,还有多值索引的最左前缀原则说完,他就直接问了下一个问题
6.Spark的宽窄依赖你知道吗
我回答上,还说了stage和task
7.Hadoop读写原理
开始的懵住了,答成了yarn的执行原理,后来也回过头来答对了
8.问了一个数据结构的问题,回答了个排序算法,插入排序
9.补充一下应答leader和follow应答机制:leader和follow副本同步机制:
(选择性的提一提)
首先先明确生产者上传数据后有三种ack策略应答,第一种是acks=0,也叫nosck,就是不管leader有没有直接写到磁盘,只要leader应答开始写就返回成功,接着发数据,这个是叫至多发送一次。第二种就是ack=1,此时是只有当leader落盘后才能够应答发送下一条数据,不管副本有没有同步,但是当leader在在应答成功后挂了,还未来得及进行副本同步就挂了,但应答却是成功了,那数据就丢失了,第三种是ack=-1,也是最安全的一种,就是只有当leader和follow都落盘了,才应答,存储下一条数据,但当follow在同步过程中挂了,leader就迟迟等待follow同步嘛,不是,kafka在zookeeper上维护了一个isr队列,队列里面都是和zookeeper能够实现心跳的结点leader和follow当如果Follower长时间未向Leader发送通信请求或同步数据,则该Follower将被踢出ISR。该时间阈值由replica.lag.time.max.ms参数设定,默认30s。
LEO:(LogEndOffset)最后的一个索引位置副本和leader都有
HW:水位线,就是当follow和leader里最小的LEO
所谓同步,必须满足两个条件:
副本节点必须能与zookeeper保持会话(心跳机制)
副本能复制leader上的所有写操作,并且不能落后太多(卡主或滞后的副本控制由replica.lag.time.max.ms配置)
副本间的同步过程就是依赖LEO和HW来以他们的值变化来演示副本同步消息的过程,首先生产者不停的向leader写入数据,这个时候leader的LEO可能已经为10了,但HW还是0,两个follow就开始向leader请求同步数据,他们LEO值都为0,然后消息继续写入,LEO的值又发生了变化,俩个follow也各自拉去到了自己的信息,于是更新自己的LEO,但这时Leader的HW依然没有改变
此时,follow依旧向leader拉取数据,这个时候leader会更新自己的HW值,取Follower中的最小的LEO值来更新比如为7,此时leader就响应自己的HW给follow,follow就更新自己的HW值,因为又拉到了数据,就继续更新自己的LEO,依次类推消费者只能获取HW之前的数据。
这些面试全部出自大厂面试真题和面试合集当中,蘑菇君已经为大家整理完毕形成了面试题库。如果感觉小编写得不错,伙伴们素质三连哦:点赞+转发+