首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
评论 11
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
不愿透露姓名的神秘牛友
昨天 11:42
双非牛马秋招进行中...
怎么办。。。室友都开始投简历进行面试了,我还没开始呢有没有友友和我一样的呢
点赞
评论
收藏
分享
07-28 16:15
门头沟学院 Java
科大讯飞正式批笔试
感觉不太能难选择题挺简单的编程题略微有点难度
投递科大讯飞等公司10个岗位
点赞
评论
收藏
分享
07-06 08:49
门头沟学院 C++
友友们如何看待这个问题
事情是这样 他是双非一本大二下马上大三的学生,和我聊天过程中发现他所有课都是速成完全没学啥,只有一个java蓝桥杯b组省二。然后他认为美团快手这样的只是中厂。还觉得刚刚出来年薪20w到30w是一件很轻松的事,各位你们身边有这种啥也不知道还对未来满满自信的人吗?问他项目有什么 他搞个学生管理系统
爱睡觉的冰箱哥:
啧,有股b哥味,但没b个的实力
点赞
评论
收藏
分享
07-08 17:47
山东大学 数据分析师
为什么我985专业前10%,top投行的实习经历现在深圳缺找不到实习啊
真三hjdlxn:
这么能吹还能找不到实习啊? 市分行写TOP投行,2个月的实习写半页。
点赞
评论
收藏
分享
07-31 18:32
上海交通大学 硬件开发
来米哈游这个冷门公司当暑假工了
终于找到工作了,工资还可以,公司我不是很熟悉,应该是个冷门二线游戏公司吧
投递米哈游等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
虾皮秋招一面
4433
2
...
百度提前批,三面被推迟一周,喜提秋招第一凉
4124
3
...
7.30滴滴提前批一面凉经
3462
4
...
干活最少的实习生因为长得漂亮转正了
3232
5
...
百度提前批 三面
3217
6
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2831
7
...
QQ提前批一面凉经
2673
8
...
7.30百度提前批一面
2644
9
...
面试劫匪??????
2267
10
...
上班一周,工资还没拿,先欠公司两千
2025
创作者周榜
更多
正在热议
更多
#
你遇到最难的面试题目是_
#
15528次浏览
194人参与
#
反问环节如何提问
#
95614次浏览
1951人参与
#
中兴秋招
#
204074次浏览
2282人参与
#
简历上的经历如何包装
#
25041次浏览
735人参与
#
如何看待offer收割机的行为
#
815796次浏览
6088人参与
#
你最讨厌面试问你什么?
#
25655次浏览
286人参与
#
秋招最大的收获是什么?
#
38664次浏览
323人参与
#
我的实习收获
#
90965次浏览
1039人参与
#
26届的你,投了哪些公司?
#
37970次浏览
434人参与
#
滴滴求职进展汇总
#
233417次浏览
2116人参与
#
作业帮求职进展汇总
#
57049次浏览
376人参与
#
初创公司值得加入吗?
#
27384次浏览
194人参与
#
我对___祛魅了
#
44029次浏览
410人参与
#
数字马力求职进展汇总
#
184489次浏览
1500人参与
#
你跟室友的关系怎么样?
#
6222次浏览
94人参与
#
什么样的背景能拿SSP?
#
32262次浏览
207人参与
#
工作中哪个瞬间让你想离职
#
61010次浏览
549人参与
#
和同事相处最忌讳的是__
#
21501次浏览
217人参与
#
去年你投递实习了吗?
#
22898次浏览
331人参与
#
如何快速融入团队?
#
15124次浏览
182人参与
#
机械人的金三校招总结
#
36279次浏览
461人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务