在Spark _18 _Shuffle文件寻址https://georgedage.blog.csdn.net/article/details/103068770中的shffle寻址流程图中有说到shffle聚合内存的概念,本篇就是阐述Spark的内存管理。

官网:http://spark.apache.org/docs/2.3.0/configuration.html#memory-management

Spark执行应用程序时,Spark集群会启动Driver和Executor两种JVM进程,Driver负责创建SparkContext上下文,提交任务,task的分发等。Executor负责task的计算任务,并将结果返回给Driver。同时需要为需要持久化的RDD提供储存。Driver端的内存管理比较简单,这里所说的Spark内存管理针对Executor端的内存管理。

Spark内存管理分为静态内存管理和统一内存管理,Spark1.6之前使用的是静态内存管理,Spark1.6之后引入了统一内存管理。

静态内存管理中存储内存、执行内存和其他内存的大小在 Spark 应用程序运行期间均为固定的,但用户可以应用程序启动前进行配置。

统一内存管理与静态内存管理的区别在于储存内存和执行内存共享同一块空间,可以互相借用对方的空间。

Spark1.6以上版本默认使用的是统一内存管理,可以通过参数spark.memory.useLegacyMode 设置为true(默认为false)使用静态内存管理。

图示【更好理解】:

【注】其中的参数均可以在配置文件,或者 官网上找到。

  • reduce 中OOM如何处理?
  1. 减少每次拉取的数据量
  2. 提高shuffle聚合的内存比例
  3. 提高Excutor的总内存

Spark _19 _Spark内存管理相关推荐

  1. Spark存储体系——内存管理器

    Spark与Hadoop的重要区别之一就在于对内存的使用.Hadoop只将内存作为计算资源,Spark除将内存作为计算资源外,还将内存的一部分纳入到存储体系中.Spark使用MemeoryManage ...

  2. Spark内核之内存管理

    目录 一.堆内内存和堆外内存 二.内存空间分配 2.1 早期内存管理(静态内存管理) 2.2 统一内存管理 2.3 同一管理内存的优点 三.存储内存管理 3.1 RDD的持久化机制 3.2 RDD的缓 ...

  3. Spark 1.6 内存管理模型( Unified Memory Management)分析

    2016年1月4号 Spark 1.6 发布.提出了一个新的内存管理模型: Unified Memory Management.这篇文章会详细分析新的内存管理模型,方便大家做调优. 前言 新的内存模型 ...

  4. spark TaskMemoryManager shuffle 内存管理

    在spark中,在shuffle过程中内存放的数据将会通过TaskMemoryManager来进行管理,以ShuffleExternalSorter为例子. final long recordPoin ...

  5. spark executor内存分配_二十二、Spark之图解Executor端内存管理

    Spark应用程序执行时,Spark集群会启动Driver和Executor两种JVM进程,Driver端负责创建SparkContext上下文(通往集群的唯一通道),构建DAG, 创建Task并进行 ...

  6. 内存参数 计算_Spark统一内存管理的实现

    本文从源码角度分析spark统一内存管理的实现原理. 统一内存管理对象的创建 统一内存管理对象在SparkEnv中进行创建和管理,这样内存管理就在Driver和Executor端中都可以使用.在Spa ...

  7. 万字最全Spark内存管理详解

    今天和大家介绍Spark的内存模型,干货多多,不要错过奥~ 与数据频繁落盘的Mapreduce引擎不同,Spark是基于内存的分布式计算引擎,其内置强大的内存管理机制,保证数据优先内存处理,并支持数据 ...

  8. Spark源码分析之九:内存管理模型

    Spark是现在很流行的一个基于内存的分布式计算框架,既然是基于内存,那么自然而然的,内存的管理就是Spark存储管理的重中之重了.那么,Spark究竟采用什么样的内存管理模型呢?本文就为大家揭开Sp ...

  9. spark从入门到精通spark内存管理详解- 堆内堆外内存管理

    前言 Spark作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解Spark内存管理的基本原理,有助于更好地开发Spark应用程序和进行性能调优.本文将详细介绍两部 ...

最新文章

  1. ef mysql 事务_事务 - EF Core | Microsoft Docs
  2. python画三维立体图-python之画三维图像
  3. 机器学习知识点(二十)矩阵奇异值分解基础知识及Java实现
  4. 2019 surf project for a milestone
  5. html访问虚拟目录路径,IIS7.5虚拟目录物理路径指向共享文件夹详解
  6. php 公众号验证回调方法_微信公众号关键词自动回复设置方法!
  7. 程序员该如何合理安排时间呢?
  8. 如何才能写出一手逼疯同事的烂代码?
  9. 计算机一级windows2000,一级BWindows2000操作系统[2]
  10. 如何在Android文本视图周围添加边框?
  11. Android开发技术周报 Issue#38
  12. 重温.NET Remoting(一)
  13. IMU与GPS传感器ESKF融合定位(转载)
  14. Matplotlib动图:FuncAnimation实现
  15. 华为如何关闭系统更新提示
  16. 老罗的锤子,3000块钱贵吗?
  17. HTTP常见状态码 200 301 302 404 500
  18. 笔记本计算机待机后显示器,笔记本电脑休眠后一直黑屏怎么回事_笔记本休眠后屏幕一直黑屏无法唤醒如何解决-win7之家...
  19. gif动图制作方法一
  20. 基于stc15f2k60s2芯片单片机编程(秒表)

热门文章

  1. CodeForces - 1293D Aroma's Search(暴力)
  2. HDU - 3571 HDU CakeMan(bfs+最短路必经点)
  3. 单片机课程设计数字心率计_光学心率传感器详细使用教程
  4. HDU4367(线段相交与斐波那契数列)
  5. 37.rust属性.txt
  6. Kafka设计解析(四):Kafka Consumer解析
  7. deque与vector的主要区别
  8. [转]I,P,B帧和PTS,DTS的关系
  9. 《RabbitMQ实战指南》笔误及改进记录
  10. Java 代码精简之道 | 长文