spark内存资源管理机制

spark storage和shuffle的动态资源分配

Spark1.6之前:(直接修改参数值就可以)

data需要资源 : spark.storage.memoryFraction

shuffle所需资源 : spark.shuffle.memoryFraction

其他:程序中用到的内存


Spark1.6后:

Reserved Memory : 固定300M,无法修改,加载一些class的相对比较固定的对象,以及计算最小spark的Exector内存

Spark Memory :Spark执行过程中进行数据缓存和shuffle操作使用的内存,资源大小:默认为1(去除300M)-75%

缓存(storage memory)、shuffle(execution memory)

storage memory满,execution memory空,storage可以占用execution

execution memory满,storage memory空,execution可以占用sotrage

storage满,execution满,execution可以占用storage,使storage删除一部分数据。storage不能占用execution,所以可以设置spark.memory.storageFraction,保证storage最少保存的内存大小

User Memory : 代码中用到的内存,资源大小:[1- spark Memory]

--------------------------------------------------------------------------------------------------------------------------

Spark 动态资源分配

现阶段spark streaming实现一般,spark core和spark sql实现的较好

spark.dynamicAllocation.enabled   开启动态资源分配(指executor的数量可以根据job中需要的资源来进行申请)

spark.dynamicAllocation.initialExecutors  初始化的时候指定executor默认数量

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 欢迎关注我的微信公众号:FunnyBigData 作为打着 “内存计算” 旗号出道的 Spark,内存管理是其非常...
    牛肉圆粉不加葱阅读 4,202评论 2 24
  • 1.1、 分配更多资源 1.1.1、分配哪些资源? Executor的数量 每个Executor所能分配的CPU数...
    miss幸运阅读 3,210评论 3 15
  • Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内...
    尼小摩阅读 618评论 1 5
  • 1、 性能调优 1.1、 分配更多资源 1.1.1、分配哪些资源? Executor的数量 每个Executor所...
    Frank_8942阅读 4,602评论 2 36
  • 在我刚进大学时,也和大家一样对大学满怀憧憬,以为大学真的就像高中老师所说的那样自由,那样轻松,现在想起来,...
    北巷先生阅读 764评论 0 3