字节大数据开发推荐架构(深圳)日常实习一面(凉)75min
9.20
24届非科班本发面筋攒好运!
第一次面+太紧张+基础不好+算法出没见过的hard = 寄
组是偏基础架构的
自我介绍到一半简介项目的时候就被打断了开始撕项目(乐
学习的方法
离线项目:
1.分层的好处,为什么分层
2.idmapping
3.拉链表的逻辑(用户活跃区间的中间表),下次还应该解释一下这个中间表的好处以及为什么方便。
实时项目:
1.维表动态注入的意义在哪里,为什么不直接写入存储介质? 答不上来,这里当时居然想确实是感觉某硅谷这个操作就是炫技,没什么实际的意义。把话题转到规则注入。
其实也不完全是,当时忘了很重要的一个点是维表那边更新是在业务库的,被面试官误导了以为维表信息是在流量域的数据流里面的就很尬。太紧张了。
其实消费的数据是mysql里面的,是由业务人员在mysql里面修改的,
而不是在数据流里面的。由flinkcdc监控到业务库的变化。可以实时地加载维表。
broadcast,connect,process这个顺序我都记不清哇塞我发现脑子真的好混乱。
2.flinkcdc深挖,如果修改删除怎么办?其实我不是用flinkcdc答不支持mysql层面的修改,过滤掉,只保留插入的数据,事实规则的插入还是删除在json里面在程序内部判断。
3.watermark是什么?
3.动态keyby要复制流,这个复制流有什么优化没有 答不上来,这个真的没办法太难了,事实上可以另外起一个job
4.flink的数据和redis和ck的数据一致性怎么保证 没答上来
其实设置redis的ttl到整点就会失效就可以了,跟那个分界点的设计其实是一个道理,唉临场感觉思维能力很捞。
5.flink的ck机制,两个流的数据先后到一个算子barrier怎么推进
6.flinkck预提交的时候sink具体做了什么(我直接???你要跟我说flinkck的整体流程我还能说,但是再往下问细节我就寄了)
7.对于复制流有什么优化 答不上来
流计算引擎项目
1.算子链如何构建,如何知道上下游。
答得一般,细节没答好。主要是对项目还不够熟组织语言组织不起来。从后往前构建,先初始化sink,Starter2层for先遍历算子再遍历机器。维护一个stage变量和oldstage变量。遍历机器的时候把创建在每台机器的算子添加进stage里面,维护一个变量oldStage存储下游的算子。每遍历完一轮把stage的值赋给oldStage,stage置为空用来接收当前这轮算子的actor。
2.akka你重写了哪些方法,只答上来createReceive其他的不记得了,SupervisorStrategy,开发时间?代码量?
3.有没有什么亮点设计?说了开窗的设计
4.节点挂了怎么办?答不上来
5.如何支持多种数据结构 其实只支持String,但他问支持多种怎么办?我又扯了泛型其实也不懂,瞎说一通java基础稀烂,回去好好补。
手撕:
"1-(2-1)"公式字符串求值,卡着了,事后看还是也不算简单当时肯定写不出来
算法也是稀烂
面试官说没思路就换一题换了题最后还是还是快排救了我,一边解说一边写