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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值