面经:大数据岗位 二面-面试题(90分钟)-超长版拿下offer的关键

        碎碎念:二面是面试全程的重中之重,一般时常比较久,在面试过程中要保持良好的心态,勿焦勿燥,耐心的回答与思考问题,这个阶段基本就是技术总监或者组长面试了,极有可能是你以后的直属leader。

先来回顾下一面的公司,该招聘信息是大数据方向岗位,用的较多的是hadoop、spark、kafka,我们面试前提前做好准备,着重刷刷题库。

由于面试问题比较多我整理分为几大类,大家按需查看吧。

面试官:先做下自我介绍吧

求职者(我):哇啦哇啦说一堆~

对于面试官来说我们是新人,所以自我介绍还是要认真的说

面试官:具体描述下你在公司承担的角色,以及你主要做的事情

求职者(我):最近一家公司是大数据技术支持,之前是大数据开发

面试官:数据支持工作中你们会涉及到后期的复盘工作吗?在整个复盘过程中你主要充当什么角色

求职者(我):会有的。根据下面这个流程展开介绍我在工作中具体的case

1.接收到工单与初步相应,并及时与客户同步问题;
2.问题定位与初步排查,
3.根据人员地图找到对应值班同学进行问题同步与问题排查
4.问题验证与客户闭环
5.事后复盘与文档沉淀
(1)复盘准备:根据时间线、排查过程记录,客户问题截图等材料
(2)复盘执行:与相关技术同学进行对接,给出优化方案与根因
(3)文档输出。

面试官这样问,我就大概可以知道,该公司是想招聘技术支持方向的人才了,所以我就上家公司技术支持的案例拿出来具体分享了一下。

面试官:软件分析这块,对于提高工作效率,你们有尝试过痛过机器人的方式去做吗?具体是怎么做的?

求职者(我):高频问题自动应答机器人,工单数据分析自动化脚本

面试官:你们业务数据有数据提取的场景吗,主要涉及到哪些数据库呢?

求职者(我):Mysql、Hive

JAVA基础

面试官:简单聊聊JAVA基础吧,也不聊那么深,但是基础东西还是聊聊,比如:ArrayList底层是通过什么数据结构实现的?

求职者(我):动态数组 Object[]

面试官:聊聊HashMap的底层是什么数据结构?

求职者(我):数组+链表

这里我当时没回答全,有点记模糊了,面试官提醒我,是数组+链表还是数组

面试官:一些项目中,如果要实现多线程要怎么做呢,当然Spark\Flink自己内部实现的不需要关注,但是java层面的话,你接触过哪些多线程的实现方式?

求职者(我):继承Thread类重写run();实现Runnable接口重写run()

重点:JAVA多线程一家公司面试,多次被问到了!!!

Scala

面试官:Scala用过吗?scala有两个很重要的概念,柯里化和闭包,你了解吗?

求职者(我):闭包:一个函数访问作用域外的函数,为了放了修改一些成员变量;柯里化:把一个多参数的函数拆为过个单参数的函数。

Shell

面试官:问下shell,有一个shell脚本,我要传A B两个参数,shell脚本里面应该怎么写?

求职者(我):$1 接收第一个参数,$2接收第二个参数。

面试官:if的结束语句是怎样的

求职者(我):fi

面试官:查看一个后台进程的Pid,怎么查?

求职者(我):ps -ef

都是基础知识,稳定发挥

Hadoop

面试官:Yarn的命令你知道吗?一些常用的Yarn命令说一下?

求职者(我):yarn application --list,yarn application --status,yarn application --kill,yarn logs -applicationId

面试官:聊下HDFS,hdfs的的角色有哪些比如namenode?

求职者(我):NameNode、DataNode、SecondaryNameNode,然后把各个角色的作用也说一下

有些问题面试官是给你开个头,想谈下你的底,所以可以拓展的就主动多说一些,展示自我能力👍;

但是如果你了解的不深,就不要主动说那么多,不然就是给自己挖坑😭

面试官:Yarn你们常用的调度策略是什么?

求职者(我):容量调度,分任务类型隔离资源,比如线上任务与线下任务;批与流任务,隔离资源,保障核心任务有足够的资源。

Kafka(Zookeeper)

面试官:因为我们这边工作涉及流任务比较多,肯定要用到zk和kafka,其很多组件都依赖zk的,比如hbase和kafka,那你知道kafka中依赖zk做什么吗?

求职者(我):kafka的元数据存储在zk中,比如集群拓扑、topic,offset等;还有就是依赖zk做节点选举,在2.8版本后,kafka推出无zk模式

有最新版本的变动,在面试过程中我们也要小小的透露下,会给你的面试加分➕,面试官会觉得你会关注行业内最新动态。

面试官:zk的选举机制,这也是面试最常问的问题,这个zk选举是?

求职者(我):“过半选举”

面试官:kafka我们这边经常会用,里面有partition概念,这个partition是存放在哪里的?磁盘还是本地

求职者(我):Broker节点的本地磁盘中。

面试官:分区里面的那个目录,你看过吗?

求职者(我):每个partition分区都对应磁盘上的一个独立文件,目录为topic名-分区编号

面试官:在问深一点,看看掌握的程度,如果说我有topic和partition的信息,并且我拿到了partition里面的某个offset,那找这个offset的流程是怎样的?

求职者(我):这个问题我没回答好,当时就简单是说了两句,但是这个问题是有深度的。

这个问题比较深了,我当时没有很好的问答,但是面试官说,这个问题其实比较难得,就是想看下你对kafka的了解程度。

面试官:kafka不丢不重阶段,有一个事务?这个你知道吗

求职者(我):Kafka 事务机制是实现 精确一次(Exactly-Once)语义 的核心手段……,具体说的啥忘了

事务我也是了解的不够多,所以问题的模棱两可

面试官:消费者段提交offset,手动提交和自动提交有什么区别呢?

求职者(我):自动提交,kafka客户端自动定时提交;手动提交 由业务代码提交。对于业务数据来说最好使用手动提交,避免数据重复,保证数据一致性。

面试官:从 Kafka 某个 topic 来消费数据,比如说存放了 7 天,那我这个消费者把 Kafka 的数据其实已经消费完了,现在又想把数据再从头消费一遍,再从 7 天前消费一遍。应该怎么做?

求职者(我):重置offset用最早到offset、按照时间戳进行消费。

60分钟过去了,基本已经问了好多问题了,我觉得应该差不多就该结束了,心态有点着急了,没想到才进行一大半。

所以我们面试过程中一定要随时的调整心态,稳住❗️

面试官:你们使用spark消费kafka的数据窗口开多大啊?

求职者(我):3000条/秒(整个大集群)

Spark

面试官:使用spark调优,你有遇到过反压吗?

求职者(我):反压其实就是数据挤压,是非常常见的,我们常规的处理方式是增大消费者处理速率,调整spark的Executor资源、合理设置并行度

面试官:Spark的DAG了解吗,DAG是根据什么拆分的?

求职者(我):宽窄依赖

面试官:宽窄依赖是什么?

求职者(我):宽依赖:一对多;窄依赖是一对一或多对一。

面试官:Spark的shuffle是有一个发展历程的,你了解spark的发展历程吗?

求职者(我):这里我就不写了,可以自行查询答案,我肯定是回答很流利了👍

到这里基本就结束了,接下来就是反问阶段了

面试官:我这边问题差不多了,你有什么想问的么?

求职者(我):想问下怎们项目这边具体是招聘做那个方向的人员?以及项目是什么?

面试官:很认真并详细的介绍了公司的项目,以及招聘岗位的jd,很耐心~

求职者(我):好的,没问题了,拜拜~

虽然面试很艰辛,但是有结果是好的

           愿君上岸                                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值