腾讯视频-数据工程暑期实习一面
腾讯这次暑期实习没有笔试,做了测评之后,就发了面邀了,2024.03.19今天下午面试,时长一个半小时,面试官人很好,但是鼠鼠太菜了,G嘞,不过还是记录一下面试问题吧。
1.聊了一下研究生的方向以及跟着导师做的项目,大概沟通了下。
2.然后问了下实习经历,做了哪些事,遇到了哪些问题,怎么解决的。
3.平时使用到哪些组件,然后问了一些八股:
- 有没有遇到数据量过大,导致代码运行时间慢的问题?做过哪些调优操作?我回答成数据倾斜方向的了,然后讲了数据倾斜怎么发生的,怎么解决,有点尬。。。
- kafka为什么可以实现高效传输数据,答:因为kafka零拷贝加页缓存。
- 页缓存是底层操作系统提供的PageCache功能,那他如果数据丢失了怎么办?答:我也不知道哇,数据定期持久化?
- 那为什么零拷贝呢,为什么不拷贝,不拷贝怎么知道传过来了哪些数据?答:因为应用层不关心数据,只要producer和consumer需要,他们自己去页缓存中读取。感觉也不太对~~~┭┮﹏┭┮
- Hbase了不了解,写入数据怎么写入到HDFS中的,既然是写入到Mem story,那在里边是以什么数据格式存储的?不会!!
- Hbase与ClickHouse和Redis各自的使用场景和功能介绍?
- Flink如何实现分布式快照?快照中保存的是什么?答:Flink实现分布式快照用的是CheckPoint检查点,通过发送barrier到各个算子,算子接收到barrier之后,保存自己的快照到HDFS中,最终所有的算子都保存完成之后,发送给checkpoint协调器,代表完成了,快照,包含了所有Task/Operator的状态。这样即使在应用出现异常挂掉时,也能通过恢复CheckPoint来
- 实现数据恢复。
- Flink怎么实现最少一次?如果快照完成之后,在传输的时候失败了会怎么办?Flink实现至少一次,跟传输失败是同样的,除了自身开启checkpoint,输入端像kafka也需要支持数据重放功能,像Flink保存消费数据的偏移量offset,这样就可以在故障重启后,提交offset来重新读取数据,这就是实现至少一次的保证。
Java篇:
- Java的堆和栈有什么区别,各自的作用?
- Java的堆分为哪几种?新建一个实例化对象,会存储在什么位置,如果是一个特别大的呢?
- CAS什么意思?
- CAS与synchronized有什么区别?
算法篇:
写一个442. 数组中重复的数据