spark性能调优(二):内存

Memory

    • 一、spark内存简介
    • 二、堆内内存 or 堆外内存?
    • 三、如何用好RDD Cache?
    • 四、OOM怎么办?

一、spark内存简介

spark 2.0后,基本上spark内存的管理就已经自动化了,内存出现问题基本上是一些数据问题。比如数据倾斜
spark性能调优(二):内存_第1张图片

  • spark.executor.memory是绝对值,指定了executor进程的JVM Heap总大小
  • spark.memory.fraction是比例值,标记spark处理分布式数据集的内存总大小
  • spark.memory.storageFraction(默认0.5)也是比例值,进一步划分Execution
    Memory和Storage Memory的大小
  • Storage Memory:用于缓存数据,当一个RDD被引用多次时,就可以考虑对其进行Cache,从而提升作业的执行效率
  • Execution Memory:用于缓存在执行shuffle过程中产生的中间数据
  • User Memory: 用户自定义的数据结构或Spark内部元数据
  • Reserved Memory:预留内存,固定300M

二、堆内内存 or 堆外内存?

在管理方式上,spark会分为堆内内存(On-Heap Memory)和堆外内存(Off

你可能感兴趣的:(Spark,spark,jvm,大数据)