harlixxy / x-x-x

记录及解答与大数据IMF相关的问题
6 stars 0 forks source link

RDD溢写到磁盘 #7

Closed maliujiu closed 8 years ago

maliujiu commented 8 years ago

老师,您好,RDD的持久化级别如果设置为MEMORY_AND_DISK 1、溢写到磁盘的最低标准是什么啊? 如何配置呢?
2、溢写完成后,结果是不是在磁盘一部分在内存一部分呢?

harlixxy commented 8 years ago
  1. 持久化操作在RDD上,对应的也就是操作的粒度是分区 所以要么一个分区都能存放到内存,要么内存装载不下,这时候该分区持久化到磁盘 另外还有RLU,最近最少使用策略,管理缓存中的缓存的分区数据
  2. RDD缓存可用的内存大小有两个相关的配置属性(除了总的内存设置之外):

BlockManager /* Return the total amount of storage memory available. / private def getMaxMemory(conf: SparkConf): Long = { val memoryFraction = conf.getDouble("spark.storage.memoryFraction", 0.6) val safetyFraction = conf.getDouble("spark.storage.safetyFraction", 0.9) (Runtime.getRuntime.maxMemory * memoryFraction * safetyFraction).toLong }

harlixxy commented 8 years ago

1.6 内存方面已经统一控制了,如果没修改对应开关的话,这些参数设置也无效的。