首页 文章 精选 留言 我的

精选列表

搜索[executor],共1699篇文章
优秀的个人博客,低调大师

Spark Executor内存管理

前言 Spark 的内存管理是内存分布式引擎中的一个重要角色,了解内存管理机制和原理,才能更好地做优化。 内容 1、静态内存管理(Spark 1.6.x版本前的策略) 静态内存管理图示——堆内 Unroll 的源码参考:https://github.com/apache/spark/blob/branch-1.6/core/src/main/scala/org/apache/spark/storage/MemoryStore.scala#L249 静态内存管理图示——堆外 2、统一内存管理(Spark 1.6.x以后的策略) 统一内存管理图示——堆内 统一内存管理图示——堆外 其中最重要的优化在于动态占用机制,其规则如下: 1\设定基本的存储内存和执行内存区域(spark.storage.storageFraction 参数),该设定确定了双方各自拥有的空间的范围 双方的空间都不足时,则存储到硬盘;若己方空间不足而对方空余时,可借用对方的空间;(存储空间不足是指不足以放下一个完整的 Block) 2\执行内存的空间被对方占用后,可让对方将占用的部分转存到硬盘,然后"归还"借用的空间 3\存储内存的空间被对方占用后,无法让对方"归还",因为需要考虑 Shuffle 过程中的很多因素,实现起来较为复杂 动态占用机制图示 凭借统一内存管理机制,Spark 在一定程度上提高了堆内和堆外内存资源的利用率,降低了开发者维护 Spark 内存的难度,但并不意味着开发者可以高枕无忧。譬如,所以如果存储内存的空间太大或者说缓存的数据过多,反而会导致频繁的全量垃圾回收,降低任务执行时的性能,因为缓存的 RDD 数据通常都是长期驻留内存的。所以要想充分发挥 Spark 的性能,需要开发者进一步了解存储内存和执行内存各自的管理方式和实现原理。 统一内存管理还可以简化如图 (1)Reserved Memory 不推荐改变此参数(默认即可); 系统保留的内存,从Spark 1.6.0开始,它的值为300MB,如果没有Spark重新编译或设置 spark.testing.reservedMemory,它的大小不能以任何方式改变,,因为它不是用于生产的测试参数。 如果没有给Spark执行程序至少 1.5保留内存 = 450MB heap,spark-submit 将失败并显示**“please use larger heap size”*** 的错误消息。 (2)User Memory 在分配 Spark Memory之后剩余的内存池; 用户可以在那里存储将在RDD转换中使用的数据结构、Spark的元数据,所以必须在编码中注意数据结构的定义和使用; 内存池的大小可以计算为(“ Java heap ” - “reserved memory ”)(1.0 - spark.memory.fraction),默认情况下等于(“ Java堆 ” - 300MB )0.25 (3)Spark Memory Apache Spark管理的内存池; 计算:(“ Java堆 ” - “保留内存 ”)* spark.memory.fraction,并且使用Spark 1.6.0默认值它给我们(“ Java堆 ” - 300MB)* 0.75。 Execution Memory 和Storage Memory的边界由 spark.memory.storageFraction 设置 参数,默认为0.5。 Storage Memory:这个内存用于缓存以后还会用到的数据:如广播变量 、persist Execution Memory:这个内存用于存储执行Spark shuffles、joins、sorts和aggregations 期间所需的对象。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册