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