首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
靠谱的小学生最喜欢夏天
门头沟学院 统计学类
发布于广东
关注
已关注
取消关注
@爱写代码的菜菜子:
屡败屡战的大数据秋招之面试必问数据倾斜
面试必问。大数据面试绝对重点!! 面过的12家,有字节、快手、美的、顺丰、OPPO、京东、贝壳都被问道过。菜鸡的我没有实习经历项目中也没有遇到过数据倾斜的情况,每次被问到都如坐针毡思维混乱一通乱说。😅😅给各位面试官留下了逻辑性差、实践少的差印象。特把这个问题单独摘出来进行深入整理!!!! 各位朋友,本人实践经验有限,下文如有错误劳烦您指出,万分感谢! 花式提问😅😅 你遇到过Spark 的数据倾斜吗 你遇到过Hive 的数据倾斜吗 你遇到过Redis 的数据倾斜吗 你遇到过 Kafka 的数据倾斜吗 你在项目中遇到过数据倾斜吗 你知道怎么解决数据倾斜吗....... 题眼 @Aerospike 一个月前,字节三面面经评论区这位大哥点醒了我。 partition倾斜那个应该就是热点倾斜,会导致消息堆积,最本质的是对每个message的hash处理 无论是哪个组件,在发生消息堆积的时候,也就是大量message 被发送到了一个地方,那我们来拆题:Kafka 数据倾斜:大量数据被发送到了Kafka 中一个partitionSpark 数据倾斜:大量数据被发送到了Spark 的一个taskHive 数据倾斜:大量数据被发送到了一个Reduce 任务中Redis 数据倾斜:大量数据都存到了Redis 集群中的一个节点中 😅😅😅是不是一样啊,就是一样啊啊啊啊!!!!解决问题的思路是一样的!! Kafka 数据倾斜解决思路: 自定义分区器Partitioner。 Redis 集群数据倾斜解决方案: 重新进行槽指派 Hive 数据倾斜解决方案 聚合倾斜 Join 倾斜 Spark 数据倾斜解决方案 1.广播变量 场景:对RDD进行join 类操作。A join B。且B的RDD比较小(百兆或者1~2GB)的情况下。解决思路:对较小的RDD直接collect到内存并创建广播变量。对另一方执行map 类算子。也就是A RDD去和广播变量中的每条数据依次对比key,key相同的两条进行join。效果:用广播变量 + map 代替join。规避join带来的shuffle。 2.聚合倾斜 场景:对RDD进行reduceByKey 等聚合类shuffle 算子,还有SparkSQL做分组聚合时。部分key 嗷嗷多,导致少数节点OOM,或已经完成的节点都在等这个还在做的节点。解决思路: 通过map 算子给操作的key打上n以内的随机数,举个例子(hello, 1) (hello, 1) (hello, 1) (hello, 1)变为(1_hello, 1) (1_hello, 1) (2_hello, 1),并进行reduceByKey的局部聚合。然后再次调用map 算子将key 的前缀随机数去掉,再次进行全局聚合。效果:将原本一个task 处理的数据分摊到多个task 进行局部聚合。规避了单个task 数据量大。 3.Join 倾斜 场景:两个大的RDD 进行Join 操作,并且一个RDD中少数key 数据量过大表示为RDDA,另一个RDD 的key 分布比较均匀表示为RDDB解决思路:a.对RDDA 进行采样,统计出数据量最大的几个keyb.对RDDA进行拆分,将倾斜的key拆分出来形成单独的RDDA_1,并打上0到n 的随机数前缀。剩余的另一部分形成RDDA_2。c.对RDDB过滤出RDDA倾斜的key,得到RDDB_1,并将其中每条数据扩大n倍,之后按序附加0到n的前缀。剩余的一部分独立形成一个RDDB_2.d.将RDDA_1和RDDB_1进行join。这时候倾斜的key被打散N份并分散到更多的task中进行Join。e.将两个普通的RDD照常joinf.将两次join 的结果用 Union 算子结合,得到最终的join 结果。效果:通过打随即前缀,将倾斜的RDDA_1 打散为n份做join。这样倾斜key 对应的大量数据被分摊到更多task上,规避倾斜。 4.调参解决
点赞 24
评论 2
全部评论
推荐
最新
楼层
秋招专场
校招火热招聘中
官网直投
相关推荐
Tansty
05-28 17:25
门头沟学院 计算机类
实习蜜月期
现在到了实习蜜月期,每天上班花几个小时做做需求,然后摸摸鱼,日子过的有点舒服的
点赞
评论
收藏
转发
勇敢的90后拒绝内卷
昨天 12:10
陕西师范大学 计算机类
网易旗下两大游戏事业部薪资情况,你更看好哪一个?
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
给你们预测一下今年的秋招!
3179
2
...
阿里体检完还没发正式offer
2697
3
...
【🎁】25届硬件牛牛互助计划(1期)
2531
4
...
深圳蟑螂真的很可怕吗
2365
5
...
拿了蓝桥杯c++b组国二,水平怎么样,找后端开发工作有多大优势?
2348
6
...
毕业了!
2053
7
...
二本开发转测试,面试成功
1950
8
...
海康威视,25暑期实习,软件开发岗
1723
9
...
腾讯音乐还是58同城
1670
10
...
海康暑期实习
1657
正在热议
#
和牛牛一起刷题打卡
#
13664次浏览
1263人参与
#
通信硬件薪资爆料
#
255504次浏览
2405人参与
#
不去互联网可以去金融科技
#
3349次浏览
46人参与
#
牛客帮帮团来啦!有问必答
#
1091578次浏览
16298人参与
#
面试被问第一学历差时该怎么回答
#
18160次浏览
199人参与
#
简历中的项目经历要怎么写?
#
14239次浏览
189人参与
#
工作两年想退休了
#
19198次浏览
237人参与
#
实习生应该准时下班吗
#
92997次浏览
704人参与
#
你收到了团子的OC了吗
#
530480次浏览
6290人参与
#
你已经投递多少份简历了
#
338281次浏览
4905人参与
#
你怎么评价今年的春招?
#
12377次浏览
192人参与
#
简历中的项目经历要怎么写
#
481785次浏览
8758人参与
#
简历无回复,你会继续海投还是优化再投?
#
23437次浏览
329人参与
#
晒一晒我的offer
#
3768736次浏览
58040人参与
#
担心入职之后被发现很菜怎么办
#
39503次浏览
327人参与
#
本周投递记录
#
220802次浏览
5374人参与
#
硬件人的简历怎么写
#
81810次浏览
849人参与
#
我想象的工作vs实际工作
#
105707次浏览
1700人参与
#
2022毕业生求职现身说法
#
23587次浏览
338人参与
#
你的秋招进行到哪一步了
#
396559次浏览
6677人参与
#
产品人求职现状
#
56794次浏览
822人参与
牛客网
牛客企业服务