勾正数据大数据开发面试题整理-20250625

发布于:2025-06-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

        最近面了家公司,想看看自己多年不准备面试,靠着老本能面试成啥样,算是试试水吧,一面过了,二面有个算法题没答出来,整体答得状态也不太好,应该是没过。

一面

先来说说一面吧,一面是视频面试,我感觉面试官应该是业务繁忙?伴着京爷的京腔面试官,我的自我介绍还没开始介绍上来就直接问技术问题了。还得是京爷啊,首先是scala基础的问题,然后是sql,spark,以及一些大数据运维以及集群c问题。

Scala:

1、Scala隐式转换是什么,谈一谈(这个我很熟悉了,讲了讲原理,然后给他说了一下应用场景)

2、伴生类和伴生对象讲一讲?(基础知识,我简单说了一下)

还有啥忘记了,感觉把常见的scala面试题背一背吧

SQL:

1、Sql去重方式几种(这个作为老开发人员,这不so easy,说了几种,distinct,窗口函数啥的,group by等,然后简单延伸了一下)

2、窗口函数多说几个(我天天用窗口函数,说了一大堆,什么row_number,rank,max....,说了部分应用场景)

3、union和union all 的区别(这个应该是我去重方式的时候没有说出来,面试官又问了我一下,我都快忘记了,简单说了一下区别和应用场景)

4、什么时候会产生笛卡尔积(这个我心里想的是,笛卡尔积我前几天还为了业务场景类似笛卡尔积了一下说了一下多表连接的时候和cross的情况,后面面完试回头查了一下,还是不少的,自己不经常用忘记了 )

Spark

1、Action算子有那些(基础问题,我讲了一大堆,然后顺便把行动和转换算子的区别讲了一下,顺便讲了一下应用场景)

2、cache和persist的区别(这个确实写代码时候经常用,应该是接上面的问题我扩展提到一嘴,面试官就接着问了,说了一下应用场景和persist的几种存储,当时忘记拓展一下checkpoint了,其实都一样)

运维问题

1、问了问我们公司常用的CDH版本

2、你们任务调度用的什么?海豚调度;

3、海豚调度的用户和租户的概念和区别。(我一想包含关系呗,但是让我解释概念这个问到我了,经常用但是对这个基础概念很模糊了,索性讲了讲我怎么用的海豚调度,说了说包含关系,然后就扯远了。)

4、小海豚的补数功能了解么?补历史数据(这个问到我了,我平常都是程序里面定义好参数,直接扔 集群里面外部传参跑,或者扔到到我们自己的调度平台,配置参数跑,还真没用过,我说没用过,都是自己代码里面自定义传入的参数跑的,巴拉巴拉一堆,然后说了一下海豚的补数方式应该也差不多吧,传参这种)

        然后面试官和我又扯了扯他们的业务啥的,我又问了问他几个问题,比如集群啥样和数据量大小啥的,结束了一面;

然后没过多久一小时不到吧,hr就说一面过了,二面要现场面试,我说好的。

二面

二面就比较曲折了,头一回现场面试,以前全是视频和电话面试。去了一共两个面试官,

Sql

1、Union和union all区别

2、窗口函数

        sql这块和一面差不多

Spark

1、Groupbykey和reducebykey的区别,哪个耗费内存大(这个老生常谈面试问题,reducebykey会进行分区预聚合...,考虑到效率的话用reducebykey...说了一下)

2、常用的Udf函数有哪些(这个我有点蒙,常用的?自定义的完全看业务代码需要,常用的我还真没了解过噻,你要说hive的我给你说一堆,spark的我???我扯了扯,然后又拓展了一下udtf函数,答得不太好。)

Linux

1、查看日志方式?tailf

2、使用shell脚本循环跑spark程序,如果报错了,我们如何通过设置预警知道这个程序报错了或者我不想盯着这个程序,然后我还要知道这个大数据程序报错了(我一开始听到这个问题,心里想我实际开发基本上都是先测一下,然后跑个几天不报错就直接扔到生产了,基本上报错的话要不就是表空间不足入不进入了,要不就是资源不足导致部分任务重算导致入库时候主键冲突了,要不就是定时程序报错了,给我发告警报错短信,至于原理这块我不太了解,大致如上)

3、Cdh的版本是什么?一面也问了

4、有过大数据运维经验吗?目前偏向纯开发,维护我知道的(据我知道的就是硬盘坏了换硬盘,然后就是重启节点之类的),看日志,看报什么错啥的

5、完事后就给了两道面试题,第一道sql挺简单的(有个限制条件忘记写了),第二道是一个算法逻辑题,挺简单的,发包问题,我没搞出来,只是说了一下我的思路。大体这样还有一些我不记得了,再补充吧。

二面总结下来就是面试官还是不错的,我的面试技巧还是不太足,有时候答不到点上,面试时让我郁闷的是他们问bug的排查流程,正常开发代码的程序bug基本编译时候可以排查,程序的bug或者逻辑问题数据问题看打印日志,组件的看日志,说完了大题这些这俩还是不太达到点的样子啊。总之很奇怪,我也没继续问了。这回答出来的问题有70%-80%正确率吧,笔试题答得不好,也算是增长些面试经验了。


网站公告

今日签到

点亮在社区的每一天
去签到