首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客792585531号
门头沟学院 大数据开发工程师
发布于广东
关注
已关注
取消关注
@三石大数据:
大数据开发面试重点【2023届秋招总结】
我本硕都是双非计算机专业,从研一下开始学习大数据开发的相关知识,从找实习到秋招,我投递过100+公司,拿到了10+的offer,包括滴滴、字节、蚂蚁、携程、蔚来、去哪儿等大厂。经过无数场的面试,不断总结,终于摸清了面试官到底喜欢问哪些问题。今天把自己总结的一些内容分享给大家,欢迎大家补充讨论!!!ps:这里仅提供了部分大数据开发面试的相关内容1. MapReduce的原理map阶段:首先通过InputFormat把输入目录下的文件进行逻辑切片,默认大小等于block大小,并且每一个切片由一个maptask来处理,同时将切片中的数据解析成<key,value>的键值对,k表示偏移量,v表示一行内容;紧接着调用Mapper类中的map方法。将每一行内容进行处理,解析为<k,v>的键值对,在wordCount案例中,k表示单词,v表示数字1 ;shuffle阶段:map端shuffle:将map后的<k,v>写入环形缓冲区【默认100m】,一半写元数据信息(key的起始位置,value的起始位置,value的长度,partition号),一半写<k,v>数据,等到达80%的时候,就要进行spill溢写操作,溢写之前需要对key按照分区进行快速排序【分区算法默认是HashPartitioner,分区号是根据key的hashcode对reduce task个数取模得到的。这时候有一个优化方法可选,combiner合并,就是预聚合的操作,将有相同Key 的Value 合并起来, 减少溢写到磁盘的数据量,只能用来累加、最大值使用,不能在求平均值的时候使用】;然后溢写到文件中,并且进行merge归并排序(多个溢写文件);reduce端shuffle:reduce会拉取copy同一分区的各个maptask的结果到内存中,如果放不下,就会溢写到磁盘上;然后对内存和磁盘上的数据进行merge归并排序(这样就可以满足将key相同的数据聚在一起);【Merge有3种形式,分别是内存到内存,内存到磁盘,磁盘到磁盘。默认情况下第一种形式不启用,第二种Merge方式一直在运行(spill阶段)直到结束,然后启用第三种磁盘到磁盘的Merge方式生成最终的文件。】reduce阶段:key相同的数据会调用一次reduce方法,每次调用产生一个键值对,最后将这些键值对写入到HDFS文件中。2.遇见过数据倾斜吗是什么?绝大部分任务都很快完成,只有一个或者少数几个任务执行的很慢甚至最终执行失败(通过spark ui可以看见,特别明显)为什么?一个任务通常来说分为map操作和reduce操作(shuffle归在reduce中了),如图所示,这里举了一个wordcount案例,便于辅助理解那么这两个部分就都有可能发生数据倾斜map端:比如交由每个map task处理的文件大小不一致reduce端:key值分布不均匀+shuffle(这两个条件缺一不可)我们也应该进一步思考,key值为什么会分布不均匀数据可能会存在大量的空值业务存在热点数据怎么办?知道了为什么之后,对症下药就可以了map端:在任务之前,我们手动让每个数据文件大小一致如果过滤空值不会对业务产生影响,那么我们应该过滤空值reduce端:我们不好直接对key下手,显然就是对shuffle进行下手了最好的手法:干掉shuffle开启map端join适用场景:大表join小表(虽然说小表的阈值可以自己设置,但是设置太大,那么就会占用过多的计算资源,显然是不合适的,通常最多设置在500m以下)万能手法:加盐为数据量特别大的key增加随机前缀或后缀,使得这些key分散到不同的task中;那么此时数据倾斜的key变了,如何join呢?于是可以将另外一份对应相同key的数据与随机前缀或者后缀作笛卡尔积,保证两个表可以join上(当然这是join的场景,对于group by计算也是一样的)3.sparksql有几种join方式包括 broadcast hash join,shuffle hash join,sort merge join,前两种都是基于hash join;broadcast 适合一张很小的表和一张大表进行join,shuffle适合一张较大的小表和一张大表进行join,sort适合两张较大的表进行join。先说一下hash join吧,这个算法主要分为三步,首先确定哪张表是build table和哪张表是probe table,这个是由spark决定的,通常情况下,小表会作为build table,大表会作为probe table;然后构建hash table,遍历build table中的数据,对于每一条数据,根据join的字段进行hash,存放到hashtable中;最后遍历probe table中的数据,使用同样的hash函数,在hashtable中寻找join字段相同的数据,如果匹配成功就join到一起。这就是hash join的过程broadcast hash join分为broadcast阶段和hash join阶段,broadcast阶段就是 将小表广播到所有的executor上,hash join阶段就是在每个executor上执行hash join,小表构建为hash table,大表作为probe tableshuffle hash join分为shuffle阶段和hash join阶段,shuffle阶段就是 对两张表分别按照join字段进行重分区,让相同key的数据进入同一个分区中;hash join阶段就是 对每个分区中的数据执行hash joinsort merge join分为shuffle阶段,sort阶段和merge阶段,shuffle阶段就是 将两张表按照join字段进行重分区,让相同key的数据进入同一个分区中;sort阶段就是 对每个分区内的数据进行排序;merge阶段就是 对排好序的分区表进行join,分别遍历两张表,key相同就join输出,如果不同,左边小,就继续遍历左边的表,反之,遍历右边的表4.HDFS的读写流程5.HDFS的架构6.小文件问题7.yarn的任务提交流程8.zab协议9.kafka的消息存储机制10.watermark机制的通俗解释11.如何保证精准一次性语义.........................................................................ps:大家在面试的过程中也需要多去总结被经常问到的问题,当再次被问到的时候,希望你的回答可以惊艳面试官!!!
点赞 41
评论 12
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 13:37
东北师范大学 Java
揭秘马斯克甩出王炸,X推荐算法开源,6小时斩获1.6k Star
昨天刷X的时候,突然发现xAI把整个For You推荐算法开源了。说实话,我当时就愣住了。要知道,推荐算法这东西,对社交平台来说就是命根子。抖音的推荐算法、小红书的推荐逻辑,哪个不是藏着掖着当核心机密?结果马斯克直接把代码扔GitHub上,7000多个star,就这么大大方方让你看。这背后到底藏着什么秘密?一个让我震惊的发现我花了整整几个晚上扒完这套代码,发现了一个颠覆认知的事实:X的推荐系统里,几乎没有人工规则。什么意思?传统的推荐系统,工程师会设计几百上千条规则。比如用户点赞过科技类内容,就多推科技,或者转发率高的内容加权。这些都是人脑想出来的逻辑。但X的算法完全不是这么玩的。他们用的是G...
愿天下没有难改的BUG
点赞
评论
收藏
分享
01-22 16:43
西安理工大学 售前产品
求职
朋友们,我是26届的,虽然是软件工程专业,但是我不会写代码,有过两段销售实习生的经历,但是我不太喜欢做销售,大家有没有什么就业方向的建议呀
点赞
评论
收藏
分享
01-21 20:23
Miami University 前端工程师
给我人都闹麻了
27届2本,ssob基本都是已读不回,只有个别小厂能约到面试,,是项目过于简单了,还是我应该再做一个项目呢。。。走过路过的大佬看一眼孩子吧,孩子真懵B了
三尺h:
写具体一点,比如最后一行了解多种常见算法,要改成了解常见算法,如xxx,xxx,这样会更好一点
简历中的项目经历要怎么写
点赞
评论
收藏
分享
今天 13:02
文远知行_感知算法工程师(准入职员工)
文远知行内推,文远知行内推码
恍恍惚惚也实习快半年了,工作主要是后端开发。 进了才知道是自动驾驶头部的明星初创(不是的话别打我🫣)。每天从家走路15min/骑车5min到公司属实很爽。 整体规模不大,工作内容还是很丰富。从python后端到java后端,中间又穿插了一个月前端开发(噩梦hhh),以后很可能还会涉及scala。长远来看,应该还是java和scala为主,go也有使用但是不清楚我会不会用上。 我本身是第一段开发实习,加上底子很弱,确实学到很多也成长很多。被分到各种任务有时候还是蛮慌张的,好在结果整体还ok! 不提倡狂加班,还是以结果为导向,干完就可以溜溜球。加上通勤很少,整体强度不算很大。组内氛围也是挺不错的...
文远知行公司福利 551人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
牛客吐槽大会 | 有槽不吐,留着过年?吐完领现金红包,痛快!
2629
2
...
J人永远闲不下来于是去提前实习
2366
3
...
拥抱AI,程序员的最后出路
1696
4
...
mentor视角下的优秀实习生
1577
5
...
马斯克最新炸裂采访,AI会带走一半工作岗位,普通人将何去何从?
1546
6
...
大厂提前实习对AI开发的新感悟
1411
7
...
努力挣钱的意义具象化了
1371
8
...
真正会被取代的,是你心里面的幻觉
1360
9
...
去独角兽做龙头还是去大厂做凤尾
1231
10
...
我身材再曼妙,也没有我的工资好笑!
1154
创作者周榜
更多
正在热议
更多
#
牛客吐槽大会
#
1716次浏览
52人参与
#
机械人你知道哪些单休企业
#
82870次浏览
412人参与
#
今年春招是金一银二嘛?
#
6825次浏览
77人参与
#
没关系,至少我的__很曼妙
#
3404次浏览
62人参与
#
1月小结:你过的开心吗?
#
1551次浏览
50人参与
#
赚钱的意义在这一刻具象化
#
3598次浏览
90人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
7442次浏览
182人参与
#
抛开难度不谈,你最想去哪家公司?
#
3369次浏览
86人参与
#
为什么有人零实习也能进大厂?
#
4317次浏览
97人参与
#
你的landing期是如何度过的?
#
7658次浏览
144人参与
#
你的第一家实习公司是什么档次?
#
3712次浏览
65人参与
#
当你问AI“你会取代我的工作吗”,它说_?
#
3253次浏览
106人参与
#
参加完秋招的机械人,还参加春招吗?
#
103342次浏览
680人参与
#
机械人春招想让哪家公司来捞你?
#
379040次浏览
3138人参与
#
除了Java,最推荐学什么技术?
#
5191次浏览
133人参与
#
一人一道大厂面试题
#
114017次浏览
1263人参与
#
AI求职实录
#
2621次浏览
74人参与
#
你觉得什么岗位会被AI替代
#
36530次浏览
251人参与
#
在找工作求抱抱
#
1653684次浏览
10964人参与
#
哪些瞬间让你真切感受到了工作的乐趣
#
23187次浏览
100人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务