概述
一,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缓存策略的优化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复