首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-30 11:01
门头沟学院 嵌入式软件开发
毁灭吧!
又不知道自己存在的意义是干什么了,实习的意义是什么,找实习的意义是什么,直接一整个上班开始浑水摸鱼,工位和学校实验室一样,也没啥活想干啥干啥,最后一个月了也不好租房,转正保底offer也大概率只是劝我这段时间不跑路编的。
26届的你,投了哪些公司...
点赞
评论
收藏
分享
07-31 18:34
大连理工大学 Java
虾皮一面凉经
队列模拟栈进程与线程的区别进程最快的通信方式单向链表中的倒数第k个数虚拟内存是什么,为什么要用虚拟内存浏览器中输入url后,之后发生的过程TCP与UDP海量数据中找到最小的100个Redis的架构乐观锁与悲观锁项目拷打一人一单是指的什么为什么用分布式锁可以解决一人一单的问题为什么不直接用一个消息队列多个线程请求不是只会到一个机器吗,理论上来说,前端发到后端不是有一个一致性哈希吗,那A的请求就到A机器,B的请求就到B机器,怎么会有到多台机器的情况缓存三剑客手撕:买卖股票的最佳时机(最多两笔交易)
查看15道真题和解析
点赞
评论
收藏
分享
07-14 19:35
已编辑
哈尔滨工业大学 Java
华为离职月记--剩余90天
没啥好说的,看图是最近吃的瓜在hvv的一年终究是彻底打破了我对hvv的所有幻想
青春运维少年不会梦到...:
图呢哥哥
点赞
评论
收藏
分享
06-24 11:43
湖南农业大学 全栈开发
毕业了,我好像凉了
🌝前端,早知道进校企合作了,室友不愁了,我出租屋蹲了一个月。佬,路在何方?
点赞
评论
收藏
分享
07-28 11:57
滴滴_运维开发工程师(准入职员工)
滴滴内推
测试面经,摘自优秀牛友测试面经:一面自我介绍tcp和udp的区别http和https的区别对测试的理解出了一个测试用例题:假设平台每天都可以创建活动,用户领取这些活动进行参与,加入需要限制每个用户每天参与活动的时间不能超过8个小时,如果超过,就不能再领取参与,请你设计一个测试用例mysql查询语句:有一个成绩表(学号,姓名,科目,分数)存有学生各科成绩,查询学生的总成绩并进行排名你做测试的优势有哪些你对滴滴出行平台怎么做测试开发一个算法题:有x个台阶,每次可以走1-x步,打印每种走法的步数明细你在实习中遇到什么困难,怎么解决的会不会git,git命令会不会linux,常用linux命令栈和堆关...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
4665
2
...
虾皮秋招一面
3175
3
...
QQ提前批一面凉经
2965
4
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2600
5
...
百度提前批 三面
2317
6
...
7.30滴滴提前批一面凉经
2104
7
...
7.30百度提前批一面
1801
8
...
小鹏offer
1468
9
...
上班一周,工资还没拿,先欠公司两千
1457
10
...
百度7.30二面
1346
创作者周榜
更多
正在热议
更多
#
简历上的经历如何包装
#
27202次浏览
781人参与
#
秋招被确诊为……
#
162848次浏览
734人参与
#
中兴秋招
#
204742次浏览
2288人参与
#
工作中哪个瞬间让你想离职
#
62146次浏览
557人参与
#
你最希望上岸的公司是?
#
134796次浏览
702人参与
#
和同事相处最忌讳的是__
#
23031次浏览
232人参与
#
你最近一次加班是什么时候?
#
70943次浏览
350人参与
#
26届的你,投了哪些公司?
#
41078次浏览
461人参与
#
你遇到最难的面试题目是_
#
16099次浏览
196人参与
#
我对___祛魅了
#
45877次浏览
420人参与
#
研究所VS国企,该如何选
#
194730次浏览
1819人参与
#
地平线求职进展汇总
#
52592次浏览
369人参与
#
如果校招重来我最想改变的是
#
271672次浏览
2849人参与
#
你跟室友的关系怎么样?
#
6724次浏览
105人参与
#
你最讨厌面试问你什么?
#
27174次浏览
303人参与
#
如果可以选,你最想从事什么工作
#
565719次浏览
4699人参与
#
柠檬微趣工作体验
#
6625次浏览
40人参与
#
什么样的背景能拿SSP?
#
35120次浏览
211人参与
#
海康威视求职进展汇总
#
493964次浏览
3625人参与
#
秋招前后对offer的期望对比
#
302958次浏览
2229人参与
#
如何快速融入团队?
#
15836次浏览
194人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务