一面:
先让做了自我介绍,问了半小时简历上的问题。
算法:
力扣的原题,面试官改为找到第K个最接近的元素,要求时间复杂度为O(logn + k)。
考察点:二分法。其具体的复杂度如下:
八股文基本没有考,考察的问题是开放型的问题。
1.Spark与Flink框架的本质区别。(DAG VS pipeline)
2.Spark SQL与Flink SQL的本质区别,各自的优缺点以及适用场景。
二面:
先让做了自我介绍,问了半小时简历上的问题。
算法:
力扣top100的原题,开放型的一道题。但是我没做过这道原题。
考察数据结构,建立一个hashMap(Integer,双链表)来进行读和写操作,还考察数据结构中LRU的基本概念。
LRU简介:
LRU是“Least Recently Used”的简写,意思是最近最少使用,是一种缓存淘汰策略,在有限的缓存资源中,淘汰掉最近最久未使用的。
例如:缓存最大容纳10000条数据,在添加时,只要数据总数小于等于10000可以随意添加,但是当数据量大于1万时,将旧的数据删除,再添加新的数据;添加时,要将新来的数据添加到最前面。说完来添加,再来说查询,从缓存中获取的数据返回之前,需要将数据移动到最前面,因为获取改数据就代表最近使用了,对于缓存来说,最近这个数据很有可能会被再次使用,所以要移动到最前面。
最优时间复杂度如下:
八股文
1.DAG与MPP模型的本质区别
MPP 的进化:深入理解 Batch 和 MPP 优缺点 - 开发者头条
MPP大规模并行处理架构详解 - 五分钟学大数据 - 博客园
DAG vs. MPP vs MR - hblt-j的个人空间 - OSCHINA - 中文开源技术交流社区
2.SQL在Hive或者Spark中的具体解析流程
3.Spark SQL逻辑计划转物理计划时候用到了哪些优化策略(SparkPlanner类的具体实现)
4.操作系统中进程与线程的本质区别