我是靠谱客的博主 怕孤独宝贝,这篇文章主要介绍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缓存策略内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部