我是靠谱客的博主 怕孤独宝贝,最近开发中收集的这篇文章主要介绍Spark缓存策略的优化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一,Spark缓存优化的方案

class StorageLevel private(
private var _useDisk:Boolean,//缓存磁盘
private var _useMemory:Boolean,//缓存内存
private var _useOffHead:Boolean,//缓存远离堆内存
private var _deserialized:Boolean,//缓存不序列化
private var _replication:Int = 1
//保持父本数
)
1,val NONE = new StorageLevel(false,false,false,false)
2,val DISK_ONLY = new StorageLevel(true,false,false,false)
3,val DISK_ONLY_2 = new StorageLevel(true,false,false,false,2)
4,val MEMORY_ONLY = new StorageLevel(false,true,false,true)
5,val MEMORY_ONLY_2 = new StorageLevel(false,true,false,true,2)
6,val MEMORY_ONLY_SER = new StorageLevel(false,true,false,false)
7,val MEMORY_ONLY_SER_2 = new StorageLevel(false,true,false,false,2)
8,val MEMORY_AND_DISK = new StorageLevel(true,true,false,true)
9,val MEMORY_AND_DISK_2 = new StorageLevel(true,true,false,true,2)
10,val MEMORY_AND_DISK_SER = new StorageLevel(true,true,false,false)
11,val MEMORY_AND_DISK_SER_2 = new StorageLevel(true,true,false,false,2)
12,val OFF_HEAP = new StorageLevel(false,false,true,false)

1,是默认的配置

2,仅仅缓存于磁盘

3,仅仅缓存于磁盘并且保持2个副本

4,仅仅缓存于磁盘内存

5,仅仅缓存于磁盘内存并且保持2个副本

6,仅仅缓存于磁盘内存且序列化

7,仅仅缓存于磁盘内存且序列化和保持2个副本

8,缓存于内存满之后,就会缓存于磁盘

9,缓存于内存满之后,就会缓存于磁盘并且保持2个副本

10,缓存于内存满之后,就会缓存于磁盘且序列化

11,缓存于内存满之后,就会缓存于磁盘且序列化,以及保持2个副本

12,缓存远离堆内存

二,MEMORY_ONLY和MEMORY_AND_DISK的比较




三,当RDD会被复用的时候通常就要使用持久化策略

1,持久化默认为MEMORY_ONLY

2,如果内存有些不足,可以选择MEMORY_ONLY_SE

3,如果数据想要容错,可以使用副本数为2

4,如果中间计算的代价比较大,可以选择MEMORY_AND_DISK

最后

以上就是怕孤独宝贝为你收集整理的Spark缓存策略的优化的全部内容,希望文章能够帮你解决Spark缓存策略的优化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部