IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Spark1.6.+ - 之内存管理Memory-Manage -> 正文阅读

[大数据]Spark1.6.+ - 之内存管理Memory-Manage

Spark1.6.+ - 之内存管理

1、前言

在Spark1.6.+及以后的版本就引入了用户自定义的内存管理模型,但是是粗粒度的内存管理模型。

总的来说,Spark的内存管理虽然没有做到Flink那么细粒度,但是也已经足够用于对内存进行优化了。

Spark的每个运行时组件都是运行在一个独立的container中,这个container的启动内存由以下4个主要的大的内存配置进行确定,我们按照executor的内存单独来看,如下!~

  • spark.executor.memory (heap size)
    • 这个是运行executor进程的内存
  • spark.executor.memoryOverhead (overhead)
    • 容器给executor进程运行预留的额外内存开销
  • spark.memory.offHeap.size (off-heap)
    • executor运行的堆外内存、不受JVM GC的影响,默认不开启
  • spark.executor.pyspark.memory (not set,默认按MB除非指定其它的单位)
    • 运行pyspark的内存,默认没有设置

TOTAL CONTAINER MEMORY = spark.executor.memory + spark.executor.memoryOverhead + spark.memory.offHeap.size + spark.executor.pyspark.memory

2、内存配置详解

spark.executor.memory

# 该内存通过 --executor-memory 进行配置,是运行executor进程的总JVM heap

# 1、spark.executor.memory
	executor运行进程的total heap size
	spark.executor.memory = spark.memory.fraction + other reversed memory
# 2、spark.memory.fraction
	默认 spark.memory.fraction = spark.executor.memory * 0.6
	其它0.4是给用户的数据结构、内部的spark元数据、防止OOM的安全保障预留的一个内存空间

# 3、spark.memory.storageFraction
	默认 spark.memory.storageFraction = spark.memory.fraction * 0.5,用来存储从外部系统读取的数据块、缓存RDD数据等
	另外还有execution memory = spark.memory.fraction * 0.5,用来存储在执行task过程中的中间数据,如网络buffer等

spark.executor.memoryOverhead

# spark.executor.memoryOverhead (from spark-2.3.0引入)
	默认spark.executor.memoryOverhead = max(0.1 * spark.executor.memory,384MB),这是一块除了heap内存之外分配给每个executor的额外的内存区域,也是保证应用运行可靠的一个内存区域。

spark.memory.offHeap.size

# spark.memory.offHeap.size (默认不开启,默认按照byte为单位,如果想使用g\m,可以指定2g\2048m)
	如果我们要引入堆外内存我们需要开启:spark.memory.offHeap.enabled=true
	且spark.memory.offHeap.size必须在此时设置成正数,如果整个executor total消费内存要满足一个标准,那么在引入offheap的同时就必须相应减少heap内存(spark.executor.memory)

spark.executor.pyspark.memory

# spark.executor.pyspark.memory
	默认没有设置,只有在又pyspark应用的时候需要设置,否则会增大container的内存占用,别的应用也占用不到该资源
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:33:49  更:2021-07-09 17:34:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 23:55:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码