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

        最近面了家公司,想看看自己多年不准备面试,靠着老本能面试成啥样,算是试试水吧,一面过了,二面没过。

一面

先来说说一面吧,一面是视频面试,我感觉面试官应该是业务繁忙?伴着京爷的京腔面试官,我的自我介绍还没开始介绍上来就直接问技术问题了。还得是京爷啊,首先是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或者逻辑问题数据问题看打印日志,组件的看日志。总之很奇怪,我也没继续问也算是增长些面试经验了。面试官也比较迷。

### 大数据开发常见面试题及答案总结 #### Hadoop生态系统的理解 Hadoop 是大数据生态系统的核心组成部分之一,其主要由 HDFS 和 MapReduce 构成。常见的面试题目可能涉及以下几个方面: - **HDFS 的工作机制是什么?** HDFS(Hadoop Distributed File System)是一种分布式文件系统,能够存储大规模的数据并提供高吞吐量访问[^1]。它通过 NameNode 和 DataNode 来管理元数据和实际数据块。 - **MapReduce 的工作流程有哪些阶段?** MapReduce 主要分为两个阶段:Map 阶段负责将输入数据转换为键值对形式;Reduce 阶段则汇总这些键值对的结果[^2]。整个过程还包括 Shuffle 和 Sort 环节来优化中间数据传输效率。 #### Hive 查询性能调优 对于海量数据分析场景下的 SQL 引擎——Hive,则常考到如下几个知识点: - **如何提高 Hive 表查询效率?** 可以采取分区(partitioning)、分桶(bucketing),以及压缩(compression techniques)[^4]等方式提升执行计划中的 I/O 性能表现。 ```sql -- 创建带分区的表结构示例代码 CREATE TABLE IF NOT EXISTS sales ( id INT, amount DOUBLE ) PARTITIONED BY (year STRING, month STRING); ``` #### NoSQL 数据库选型分析-HBase vs Cassandra etc. 当面对半结构化或者非结构化的海量实时读写需求时,NoSQL 成为了必然之选: - **对比 HBase 和其他NoSQL数据库的区别在哪里呢 ?** Apache HBase 基于 Google Bigtable 设计理念构建而成 , 它提供了随机快速存取能力的同时还保持了强一致性保障 . 而像assandra 更倾向于最终一致性的CP模型,在跨数据中心复制等方面具备优势 [^3]. #### 流计算框架比较 - Storm VS Spark Streaming 随着业务复杂度增加及时效性要求越来越高,流式处理逐渐成为主流方向 : - **分别阐述一下Apache Strom同Spark Structured Stream之间的差异吧 !** Apache Storm 属于低延迟事件驱动架构适合做毫秒级响应的任务;而后者依托RDD机制实现了微批(batch-based micro-batching approach),兼顾了两者之间平衡点从而达到亚秒级别延时效果.[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigData_老李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值