一,上来就问了项目里日志的处理量,50w  100M左右 

二,问项目里如何解决Hbase的热点问题,面试官没听明白,后面就直接问热点问题如何解决的   答的就举年份例子,加盐,预分区

三,Kafka里是如何leader和follow是如何实现同步的  
具体怎么实现同步我确实不知道,我就答的是offset在follow和leader挂了后如何在实现同步的,面试官说我似乎说了又没说明白,后面查了一下,下面就补充吧

四,Hbase读写原理           说了读数据原理,写数据原理就说了和读数据原理差不多也

五,你了解mysql的索引嘛,有哪些是不会用到索引的
答了,索引的分类,like和or,还有多值索引的最左前缀原则 说完,他就直接问了下一个问题

六,Spark的宽窄依赖你知道吗
我回答上,还说了stage和task

七,Hadoop读写原理
开始的懵住了,答成了yarn的执行原理,后来也回过头来答对了

八,问了一个数据结构的问题,我说了个排序算法,插入排序

在说排序算法的时候,对面网挂了,就在调那网,然后就说结束了,我都还没提问额。。。。

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之前的数据

https://uploadfiles.nowcoder.com/images/20220721/890110428_1658399428516/B6C31D01D41C9E1714958F9C56D01D8F
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务