字节大数据开发/数仓-一面面经

    作者:是锅粥
    链接:https://www.nowcoder.com/discuss/709357?source_id=discuss_experience_nctrack&channel=-1
    来源:牛客网

    1.自我介绍
    2.之前实习的组是做什么的?也讲了一下之前公司的数仓架构
    3.上一段实习中的hive/spark调优场景。为什么小表50m数据量你不用map join?你是怎么判断有没有发生数据倾斜的怎么排查的?hive和spark分别看哪些指标?
    4.你提到了在webUI看shffle write和shuffle read,讲一下分别在干嘛?
    5.map端为什么要排序?
    6. map端输出的文件组织形式是什么样的?
    7.map短的索引说一下, 他是怎么工作的,为什么要索引
    8. 环形缓冲区了不了解?说一下他的那个阈值高低的影响
    9. 哪些操作引起shuffle
    10. spark里的reduce by key和group by key两个算子在实现上的区别并且说一下性能
    11. 讲一下heap这个数据结构,还有各项操作的时间复杂度 heapify,insert
    12. 讲一下LRU
    13. 为什么会发生page replacement?为什么要paging?
    14. 为什么要有vm?

    最后也没做sql没问数仓,一道LRU(后来才知道 leetcode的题,没做过)
    没写出来,只说了一下非o(1)的思路,一直有积极和面试官交流,听说字节算法题没写出来就凉。
    很明显的非刷题选手了,一年半没刷过题也敢来面试我觉得我很棒,也很蠢,不知道把握机会!!!

    总体来说接近一个半小时的面试体验还是不错的,和面试官交流的很顺畅。
    没有想到会挖那么深,但幸好实操多理解得还算透彻。本来很慌纬度建模,因为纬度建模的工具书到现在还没开始看过,幸好没问。但是得赶紧开始看起来了!!
    在做算法提前我能感觉到面试官很满意,但是呵呵做完算法题就知道凉凉了(我以为数仓只考SQL和一些简单的spark代码呢)

    那之后加油吧~冲鸭鸭鸭
    想多问一句,怎么好多公司技术岗也有行测题呀,做得垃圾还有戏吗?
    ——————————
    更新一下: 我看了一下网上的答案发现算法题我的思路和伪代码是完全正确的,一开始和面试官交流说找不到一个数据结构同时满足o(1),后来他让我先别管o不o(1)的想怎么写怎么写,我写完之后给他讲了我的思路并walk through了一个例子,他说OK,然后就说面太久了要结束了。至于为什么是伪代码呢,因为本人现在java/python/scala的语法全都混淆了,在python里会call到java的函数,在java里会call到scala的函数
    所以可能还是有一丢丢希望?毕竟代码没有跑起来也很心虚。。。
    以及,今天发现在牛客网上这个题排字节的高频题top3,叫我不刷题,活该!大伙儿赶紧刷起来啊!!