校招 未知部门 / 数据 / 一面/二面
[面试日期] 2023-08-28 [面试时长] 未知
[学校背景] 北京工业大学 | 211 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>华为OD面试</h2>
<p><strong>个人情况:</strong>23届硕,大数据方向,之前在导师安排下在某行北分实习一年,主要做些报表开发,后在字节实习半年做数据仓库,没有HC就没法转正,2023春招签约联洋国融,7.10入职,8.3被裁,理由:公司降本增效<img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763718/D9FDAE9918A39C99254A9D8D179628E5">。找工作ing......</p><p><strong>面试前:</strong>听HR说华为OD是按照招聘者选择开发语言进行面试的,之前实习主要做数据仓库,好久没碰Java了,顿时紧张起来......</p><p>笔试机考(不到300,有个题实在想不出用例)+性格测试</p><p><strong>技术一面(2023-08-23):</strong></p><p><strong>1.为什么没在字节转正</strong></p><p>行情不好,没有HC</p><p><strong>2.讲一下常见的数据结构</strong></p><p>顺序表,链表,然后讲了下他们的区别;栈,队列;树,图,大致讲了些常见的种类。</p><p>面试官又问了下队列,刚才应该是跟招聘部门联系了,没太注意我说,然后又问了堆(这个是我忘了说<img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763490/62AF11E48344D159DA608796DA7D39E5">),接着说跟招聘部门沟通了,主要是做大数据相关,问些大数据相关知识(心里窃喜)</p><p><strong>3.讲一下大数据的三驾马车</strong></p><p>讲了Hadoop的HDFS、MapReduce和Yarn(我相信大多数人都会这样讲)。面试官说Yarn和MR应该属于一驾马车,让我想想还有没,然后给我说还有一驾马车是HBASE,我心里想着是不是面试官不是做大数据的所以不太懂呀,后来搜了下,小丑竟是我自己<img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763930/8B36D115CE5468E380708713273FEF43">最早学习Hadoop时确实看过大数据的发展史,但那么久早忘完了,大数据的三家马车基于Google发表的三篇论文:<span>分布式文件系统 GFS、大数据分布式计算框架 MapReduce 和 NoSQL 数据库系统 BigTable。具体有兴趣的可以自行 查阅相关知识。</span></p><p><strong>4.刚才你讲的HDFS中,除了三副本存储之外,还知道哪些保证高可靠性的技术?</strong></p><p><span>一开始说了校验和保证数据的正确性,但面试官想要的不是这个结果,想起了Hadoop3.0有个纠错码技术,节省存储成本同时还可以通过算法恢复丢失的部分数据,面试官应该想要这个答案,说了个类似得技术,名字没听过,但技术类似。</span></p><p><strong>5.MapReduce存在的问题怎么解决?</strong></p><p><span>刚开始以为问的点是Shuffle的痛点,答了一些优化知识,后来发现面试官想要的答案是Spark等较新的技术对MR的优化部分,就是Shuffle是不可避免的,把中间结果落盘存储改到内存中;还提了下Tez引擎,最后听面试官的话应该直接说Spark为什么MR快,模型、计算等方面。</span></p><p><strong>6.Spark调度过程</strong></p><p><span>简单打了下任务的提交,StageSchedule、TaskSchedule以及资源分配</span></p><p><strong>7.Flink相对Spark的优势</strong></p><p><span>Flink不太了解,就没回答。</span></p><p><strong>8.讲下HBASE</strong></p><p><span>这点没问具体问题,直接让自己将,就讲了下大概,没往深处将。后来想想还是应该选择一个点往深处讲。</span></p><p><strong>9.谈一下对大数据未来发展方向的看法</strong></p><p><span>一下子高度就拉满了,讲了处理响应时间这一块,后来想了下还可以讲下存储这一块。</span></p><p><strong>10.讲下过去做的项目</strong></p><p><strong>11.深度遍历和广度遍历</strong></p><p><span>这个比较简单,还OK</span></p><p><strong>12.算法题,上台阶</strong></p><p><span>斐波那契数列,用dp数组写了之后问还能不能,优化下,就用三个变量滚动式计算节省了空间。</span></p><p><span>最后又问我斐波那契数列的原理,当场去世...</span></p><p><span>----------------------------------------------------------------------------------------------------------------------------</span></p><p><strong>技术二面(2023-08-25):</strong></p><p><span>这次面试就纯纯Java后端的问题了</span><img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763930/8B36D115CE5468E380708713273FEF43"></p><p><strong>1.字节实习主要做了哪些内容?</strong></p><p><strong>2.遇到哪些问题?</strong></p><p><strong>3.对数仓做过哪些优化?</strong></p><p><strong>4.有没有接触过一些事务的处理?</strong></p><p><span>实践没接触过,回答了下事务的四大特性,以及MySQL中的事务级别。</span></p><p><strong>5.连接池的优点?</strong></p><p><span>减少连接响应时间;面对激增的连接请求有个缓冲作用(专业词:平滑扩展);提供特殊需求(可配置),如单连接连接池。后来查了下,还有个资源复用。</span></p><p><strong>6.讲一下死锁</strong></p><p><span>回答了产生死锁的四大必要条件,想要避免死锁,只需打破其中任意一个条件即可。(进程和线程都可能发生死锁)</span></p><p><strong>7.讲一下知道的Java设计模式</strong></p><p><span>23中设计模式,知道的有单例模式,工厂模式,服务端-客户端模式,观察者模式,后面俩还只是知道</span><img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763930/8B36D115CE5468E380708713273FEF43"></p><p><strong>8.讲一下循环的递归的区别</strong></p><p>递归就是重复调用自己,需要有个退出条件,如果达不到条件可能一直递归,然后OOM,循环中每一步的动作都是一样的。然后面试官给讲了下可以从代码的实现,可读性和维护性上分析,这点确实是没考虑到的。</p><p><strong>9.进程和线程的区别</strong></p><p>通常一个进程包含多个线程;</p><p>进程是操作系统分配资源的最小单位(线程是调度和任务执行的最小单位,这句没说出来);</p><p>进程内所有线程共享资源(说的不准确,方法空间和代码是共享的,但程序计数器和运行栈是私有的);</p><p>进程之间通讯要比较麻烦,而进程内线程通讯相对来说比较简单;</p><p>(进程的切换花销要比线程的切换大);</p><p>(进程有自己的执行入口,顺序执行序列和执行出口。线程不能独立执行)</p><p><strong>10.代码题</strong></p><p>N*3的矩阵,列顺序不变,任意挑出3行数据能组成对称矩阵,求有几种这样3*3的矩阵。</p><p>想到了回溯,但时间关系不敢去尝试,用了暴力遍历。</p><p>----------------------------------------------------------------------------------------------</p><p>二面过了之后HR说评级B级,技术定级不透漏,最高给到15k,接受不了就给拒了<img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553764028/03864089FFAB3F0B62C808081B5C41A9"></p><a>#面经#</a>
AI 推荐面试题
