spark中企业项目调优方案1

xiaoxiao2021-02-28  17

在真正的企业项目中:调优的第一步首先要考虑资源分配充足,因为在企业中,资源分配充足,一般是跟性能成正比,

   那要分配哪些资源呢?

   executor.num,executor.memory,executor.core,diver.memory,

这些参数是怎么影响性能的呢?我将为大家讲解,有不妥的地方,望大家及时提出意见

 executor.num的数据量增加,在任务运行的时候,executor会启动相应数据量的task来执行任务,当executor数量增加的时候,task的数量也随着增加,从而增加了任务运行的并行度,提升了运行速度

executor.memory增加,1>在做缓存的时候,当内存不足的时候,就会将数据大量的写入磁盘,此时会存在大量的磁盘读写,使得磁盘io成为spark作业的瓶颈,当此内存增加的时候,就避免了磁盘的写入,减少磁盘io,增加性能

                                   2>在做shuffle的时候,reduce会将数据拉去到自己的内存进去聚合,当内存不足的时候,会将存在磁盘读写,导致性能降低

                                  3>在任务运行的时候,可能会频繁的创建对象在jvm中,当内存不足时,jvm堆内存爆满,会频繁的出现垃圾回收机制,导致任务的等待和停顿,性能明显降低,增加内存,会使得减少频繁的gc fc机制

,executor.core:也是从另一个角度来增加task的数量,增加并行度

diver.memory:经验之谈,增加此项,提升性能不明显,但是做为一个程序员应当从多角度来提升作业的性能

转载请注明原文地址: https://www.6miu.com/read-2629621.html

最新回复(0)