首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客296310925号
华中科技大学 数据分析师
发布于湖北
关注
已关注
取消关注
@三石大数据:
大数据开发面试重点【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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-29 11:09
中山大学 后端
秒杀系统—3.第二版升级优化的技术文档一
大纲1.秒杀系统的服务细分和服务定位2.秒杀系统的同步锁定库存和延迟预热3.秒杀系统的业务流程和技术要点以及高并发能力4.秒杀系统的各服务功能简介5.秒杀系统的缓存组件6.秒杀系统的异步化组件1.秒杀系统的服务细分和服务定位(1)秒杀系统服务细分(2)秒杀系统各个服务的定位(1)秒杀系统服务细分一.秒杀相关的服务秒杀活动服务、秒杀库存服务、秒杀抢购服务、秒杀下单服务。二.⻚⾯静态化相关的服务页面渲染服务、页面聚合服务、页面发布服务。三.依赖的其他服务依赖的商品服务、依赖的订单服务。(2)秒杀系统各个服务的定位2.秒杀系统的同步锁定库存和延迟预热当创建好秒杀活动后,其实没必要马上进行秒杀商品的库...
后端技术栈的基础修养
点赞
评论
收藏
分享
05-29 16:24
中国海洋大学 soc前端设计
大厂社畜男的悲哀谁懂
在大厂当牛马,平均每天早10晚10,项目上线前可能是晚11、12……女朋友因为我下班晚陪不了她 生气了怎么办啊,白天当吗喽晚上还要被骂,好难
最喜欢冬天的磨洋工匠人很想去杭州:
你到底是在炫耀你是大厂呢还是在炫耀你有女朋友呢 look my eyes
点赞
评论
收藏
分享
04-17 20:15
河南大学 Java
投了四天一个小厂面都没
找实习真的比学习的时候焦虑多了😭学习的时候只要埋头苦学就好了,我的目标就是找一个中厂实习,但是连一个练手的小厂面都没,现在背八股的动力都没有,是我太心急了吗,还是这确实不正常😭
代码飞升:
大概率你打招呼和简历写的有问题,不然按你的学历不应该这样子
点赞
评论
收藏
分享
04-17 12:35
哈尔滨理工大学 C++
这b站的日常实习……
怎么挂又不挂,筛又不筛,是没hr了吗
mjasjon:
这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞
评论
收藏
分享
05-27 21:58
学而思_HR(准入职员工)
学而思内推-学而思内推码
22-25届均可投递)学而思2026届校招提前批启动啦!很多HC!面向对象:22-25届毕业生均可投递,专业不限,应聘阶段无教资要求招聘岗位:高中学科、素养、竞赛教练等(多业务线可选,详见投递主页)📍工作地点:全国39城薪酬:每年4-6次调薪机会福利:六险一金、年度体检、带薪病假、福利年假、司令假期、节日礼盒、团建下午茶、花样周边等。面试流程:初筛-初试(试讲)-复试-培训-offer支持线上面试,抢先锁定offer,心向往之,在学而思!内推码: DS74UTFd(优先处理特权)内推链接:https://app.mokahr.com/m/campus-recruitment/tal/1480...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
你的经历比较单薄, 但简历又弥补了这一点--双非仔个人简历分享
2604
2
...
六月还有机会的,对吗?
2270
3
...
字节last day,知无不言!
2238
4
...
发现27282届的同学怎么越来越卷了,投个票看看相互的进度吧
1638
5
...
只有收到offer那一刻是开心的
1261
6
...
25 暑期实习&秋招面经
1085
7
...
记录一下选择
986
8
...
怎么包装实习经历呢
974
9
...
为什么我的mos管驱动电路总是不听话?(上-基本原理总结)
868
10
...
答辩时被导师当着所有人的面阴阳
868
创作者周榜
更多
正在热议
更多
#
写给毕业5年后的自己
#
7029次浏览
123人参与
#
今年形式下双非本找得到工作吗
#
133920次浏览
1008人参与
#
华泰证券Fintech星战营
#
190820次浏览
279人参与
#
职场捅娄子大赛
#
334569次浏览
3372人参与
#
你的秋招第一场笔试是哪家
#
128552次浏览
1399人参与
#
一人一个landing小技巧
#
65090次浏览
1007人参与
#
材料专业就业可以去哪些企业岗位
#
32847次浏览
314人参与
#
汇川技术求职进展汇总
#
120866次浏览
809人参与
#
产品2023笔面经
#
51183次浏览
441人参与
#
哪些公司笔/面试难度大?
#
2569次浏览
19人参与
#
硬件应届生薪资是否普遍偏低?
#
70222次浏览
506人参与
#
我想象的工作vs实际工作
#
470863次浏览
4781人参与
#
今年的你投递了多少份简历才上岸
#
33541次浏览
117人参与
#
通信硬件人社招/春招/实习投递现状
#
24972次浏览
922人参与
#
实习中的菜狗时刻
#
349701次浏览
3219人参与
#
考公VS就业,你怎么选?
#
58693次浏览
393人参与
#
总结:哪家公司面试体验感最差
#
55811次浏览
262人参与
#
工作后会跟朋友渐行渐远吗
#
25835次浏览
191人参与
#
机械人的薪资开到多少,才适合去?
#
107813次浏览
445人参与
#
你的论文盲审过了没?
#
103142次浏览
1468人参与
#
考公还是考研,你怎么选?
#
26040次浏览
131人参与
牛客网
牛客企业服务