大数据工程师面试题 - Spark 调优(九)

我是大数据欧老师,曾在互联网某大厂任大数据负责人,从业大数据领域近 10 年,全网粉丝 5000+,从很多候选人的面试和咨询中复盘了大数据工程师的面试全流程,如果你有求职大数据工程师的计划,欢迎找我聊一聊!

数据倾斜的解决方案

解决方案八:参数调优

shuffle相关参数调优

以下是Shffule过程中的一些主要参数,这里详细讲解了各个参数的功能、默认值以及基于实践经验给出的调优建议。

Spark 参数优化详解

以下列举了Spark参数调优的一些关键参数及其优化建议:

1. spark.shuffle.file.buffer (默认值:32k)

该参数用于设置 shuffle write task 的 BufferedOutputStream 的 buffer 缓冲大小。合理增大该参数的值,可以有效减少磁盘IO次数,进而提升性能。

2. spark.reducer.maxSizeInFlight (默认值:48m)

该参数用于设置 shuffle read task 的 buffer 缓冲大小。合理增加该参数的值可以减少网络传输的次数,进而提升性能。

3. spark.shuffle.io.maxRetries (默认值:3)

该参数表示 shuffle read task 从 shuffle write task 所在节点拉取属于自己的数据时,可以重试的最大次数。对于包含大量 shuffle 操作的作业,建议增加重试最大次数,以提升作业的稳定性。

4. spark.shuffle.io.retryWait (默认值:5s)

该参数代表了每次重试拉取数据的等待间隔。建议加大间隔时长(比如60s),以增加 shuffle 操作的稳定性。

5. spark.shuffle.memoryFraction (默认值:0.2)

该参数表示 Executor 内存中,分配给 shuffle read task 进行聚合操作的内存比例。如果内存充足,而且很少使用持久化操作,建议调高这个比例,以提高性能。

6. spark.shuffle.manager (默认值:sort)

对于业务逻辑不需要对数据进行排序,可以考虑使用 bypass 机制或优化的 HashShuffleManager 来提高性能。

7. spark.shuffle.sort.bypassMergeThreshold (默认值:200)

当 ShuffleManager 为 SortShuffleManager 时,如果 shuffle read task 的数量小于这个阈值(默认是200),则 shuffle write 过程中不会进行排序操作。合理调大此参数可以减少排序的性能开销。

8. spark.shuffle.consolidateFiles (默认值:false)

如果使用 HashShuffleManager,该参数有效。开启 consolidate 机制可以合并 shuffle write 的输出文件,减少磁盘IO开销,提升性能。

#大数据##大数据工程师##大数据知识体系##大数据面试##大数据面经#

解决职场真实面试问题,分享同学真实成功案例,欢迎订阅关注!

全部评论

相关推荐

05-11 11:48
河南大学 Java
程序员牛肉:我是26届的双非。目前有两段实习经历,大三上去的美团,现在来字节了,做的是国际电商的营销业务。希望我的经历对你有用。 1.好好做你的CSDN,最好是直接转微信公众号。因为这本质上是一个很好的展示自己技术热情的证据。我当时也是烂大街项目(网盘+鱼皮的一个项目)+零实习去面试美团,但是当时我的CSDN阅读量超百万,微信公众号阅读量40万。面试的时候面试官就告诉我说觉得我对技术挺有激情的。可以看看我主页的美团面试面经。 因此花点时间好好做这个知识分享,最好是单拉出来搞一个板块。各大公司都极其看中知识落地的能力。 可以看看我的简历对于博客的描述。这个帖子里面有:https://www.nowcoder.com/discuss/745348200596324352?sourceSSR=users 2.实习经历有一些东西删除了,目前看来你的产出其实很少。有些内容其实很扯淡,最好不要保留。有一些点你可能觉得很牛逼,但是面试官眼里是减分的。 你还能负责数据库表的设计?这个公司得垃圾成啥样子,才能让一个实习生介入数据库表的设计,不要写这种东西。 一个公司的财务审批系统应该是很稳定的吧?为什么你去了才有RBAC权限设计?那这个公司之前是怎么处理权限分离的?这些东西看着都有点扯淡了。 还有就是使用Redis实现轻量级的消息队列?那为什么这一块不使用专业的MQ呢?为什么要使用redis,这些一定要清楚, 就目前看来,其实你的这个实习技术还不错。不要太焦虑。就是有一些内容有点虚了。可以考虑从PR中再投一点产出
点赞 评论 收藏
分享
评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务