当前位置: 首页 > news >正文

门户做网站今天的新闻就是明天的历史

门户做网站,今天的新闻就是明天的历史,建设银行网站啊,注册安全工程师官网入口文章目录Spark 内存管理堆内和堆外内存堆内内存堆外内存堆外与堆内的平衡内存空间分配静态内存管理(早期版本)统一内存管理Spark 内存管理 堆内和堆外内存 Spark 引入了堆外(Off-heap)内存,使之可以直接在工作节点的…

文章目录

  • Spark 内存管理
    • 堆内和堆外内存
      • 堆内内存
      • 堆外内存
      • 堆外与堆内的平衡
    • 内存空间分配
      • 静态内存管理(早期版本)
      • 统一内存管理

Spark 内存管理

堆内和堆外内存

Spark 引入了堆外(Off-heap)内存,使之可以直接在工作节点的系统内存中开辟空间,进一步优化了内存的使用。
堆内内存受到 JVM 统一管理,堆外内存是直接向操作系统进行内存的申请和释放。
在这里插入图片描述

堆内内存

由 Spark 应 用 程 序 启 动 时 的 – executor-memory 或spark.executor.memory 参数配置,Executor 内运行的并发任务共享 JVM 堆内内存
存储(Storage)内存:RDD 数据缓存 和广播(Broadcast)变量;
执行(Execution)内存:任务在执行 Shuffle 时占用的内存;
剩余(Other)空间:Spark 内部的对象实例,或者用户定义的 Spark 应用程序中的对象实例。

Spark 不能准确记录实际可用的堆内内存:在被 Spark 标记为释放的对象实例,有可能在实际上并没有被 JVM 回收,导致实际可用的内存小于 Spark 记录的可用内存。

堆外内存

Spark可以直接操作系统堆外内存,减少了不必要的内存开销,以及频繁的 GC 扫描和回收。堆外内存可以被精确地申请和释放(堆外内存之所以能够被精确的申请和释放,是由于内存的申请和释放不再通过JVM 机制,而是直接向操作系统申请和操作系统释放

在默认情况下堆外内存并不启用,可通过配置spark.memory.offHeap.enabled 参数启用, 并由 spark.memory.offHeap.size 参数设定堆外空间的大小。堆外内存没有 other 空间,只有Storage内存和Execution内存。

堆外与堆内的平衡

对于需要处理的数据集,如果数据模式比较扁平,而且字段多是定长数据类型,就更多地使用堆外内存。

如果数据模式很复杂嵌套结构或变长字段多,就更多采用 JVM 堆内内存会更加稳妥。

内存空间分配

静态内存管理(早期版本)

存储内存、执行内存和其他内存的大小在Spark 应用程序运行期间均为固定的,应用程序启动前可以通过参数配置。

在这里插入图片描述
堆外的空间只有存储内存和执行内存,由参数 spark.memory.storageFraction 决定

在这里插入图片描述

# 静态内存# 堆内内存
# spark.executor.memory提交任务时指定executor 堆内内存总大小
可用的Execution内存 = executor.memory * spark.shuffle.memoryFraction * spark.shuffle.safety.Fraction
可用的Storage内存 = executor.memory * spark.storage.memoryFraction * spark.storage.safety.Fraction# 堆外内存
# spark.memory.offHeap.size 提交任务时指定executor 堆外内存总大小
可用的存储内存 = memory.offHeap.size * spark.storage.memoryFraction
可用的执行内存 = memory.offHeap.size * ( 1- spark.storage.memoryFraction)

统一内存管理

与静态内存管理的区别在于存储内存和执行内存共享同一块空间,可以动态占用对方的空闲区域
在这里插入图片描述

统一内存管理的堆外内存
在这里插入图片描述

# 统一内存# 堆内内存
# spark.executor.memory提交任务时指定executor 堆内内存总大小
初始可用的Execution内存 = (executor.memory -300M) * spark.memory.fraction * (1-spark.storage.storageFraction)
初始可用的Storage内存 = (executor.memory -300M) * spark.memory.fraction * spark.storage.storageFraction# 堆外内存
# spark.memory.offHeap.size 提交任务时指定executor 堆外内存总大小
可用的存储内存 = memory.offHeap.size * spark.storage.memoryFraction
可用的执行内存 = memory.offHeap.size * ( 1- spark.storage.memoryFraction)

最重要的优化在于动态占用机制,其规则如下:

  • 如果对方的内存空间有空闲,双方可以互相抢占;

  • 对于 Storage Memory 抢占的 Execution Memory 部分,当分布式任务有计算需要时,Storage Memory 必须立即归还抢占的内存,涉及的缓存数据要么落盘、要么清除;

  • 对于 Execution Memory 抢占的 Storage Memory 部分,即便 Storage Memory 有收回内存的需要,也必须要等到分布式任务执行完毕才能释放。

http://www.yayakq.cn/news/682427/

相关文章:

  • 个人网站的设计与实现主要技术指标重庆工程建设招标网官方网站
  • 最新远程网站建设服务器创意产品设计方案
  • 手工做火枪的网站注册上海公司
  • 深圳网站建设制作营销做门户网站的网络公司
  • 湖北营销网站建设设计个人网站有什么
  • 公司网站建设需求说明书郑州网站建设公司排名
  • 朔州市2018年建设工程网站公司网站建设组织架构
  • 全国商务网站大全wordpress生成默认密码
  • 做视频网站该把视频文件传到哪网站会员系统源码
  • 潍坊做网站哪家好wordpress 加入搜索引擎
  • 温州捷创网站建设代做网页制作网站
  • 壹六八信息科技网站建设网站开发 问题 关键技术
  • 建网站和建小程序多少钱注册了域名后怎么设计网站
  • 做一个电子商城网站建设方案学做古装网站
  • 如何做域名网站交互设计网站案例
  • 公司电商网站建设方案模板河南衣柜网站建设公司
  • 网站设计可以用性原则网络广告一般收费价目表
  • 网站建设的cms系统物流三方网站怎么做
  • 网站的用户体验网站怎么做百度优化
  • 石家庄做网站泰安房产网二手房出售信息
  • 怎样免费建立网站程序员客栈
  • 济南最好的网站开发wordpress建站教程交友
  • 宁波做百度网站推广公司注册的公司
  • 养老网站建设的意义青岛注册公司核名在哪个网站
  • 网站建设的步骤图金蝶软件中国有限公司
  • 网站qq统计中信建设有限责任公司深圳中信金融中心项目工期专业招标
  • 中资源 网站域名解析花都高端网站建设
  • 凡科网 免费网站简约大方的网站
  • wap网站生成系统昆明岭蓝网站建设公司
  • 西安网站维护推广山大优秀网站建设2018年度