Spark优化总结

本文总结了Spark作业的资源优化,包括executor内存分配、task执行与CPU Core的关系以及关键参数调整。同时,探讨了Spark开发中的优化策略,如避免重复RDD、复用RDD、持久化处理、减少shuffle操作以及使用map-side预聚合和Kryo序列化提升性能。
摘要由CSDN通过智能技术生成

一、资源

任何计算都不不开资源的开销,如何把资源利用到极致显得非常重要。

drive process向Resource Manager申请任务资源,yarn给executor进程分配资源,Executors的内存重要分为三种:

(1)executor内存(60%):执行内存,执行shuffle(join)的时候,shuffle会用这个内存区来存储数据,如果溢出写磁盘
       (2)storage内存(20%):存储缓存,cache、presist、broadcast
       (3)other内存(20%):应用程序

附:Task的执行速度和每个executor进程的CPU Core数量有直接关系,一个CPU Core同一时间只能执行一个线程,每个executor进程上分配到的多个task,都是以task一条线程的方式,多线程并发运行的。如果CPU Core数量比较充足,而且分配到的task数量比较合理,那么可以比较快速和高效地执行完这些task线程

资源的利用方面,需要从以下几个参数进行优化:

1.num-executors:该作业总共需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值