Spark 1.6+中引入了统一内存管理。
但是,我无法使用spark.memory.fraction
。因此,我决定将spark.memory.useLegacyMode
属性设置为false
,这确实解决了我的问题。
但是,我决定了解为什么spark.memory.fraction
属性没有预先起作用,因为the docs指出spark.memory.useLegacyMode
属性的默认值为false
。
因此,在未设置spark.memory.useLegacyMode
值的情况下,我决定检查外壳中的值是什么,并得到:
scala> sc.getConf.getOption("spark.memory.useLegacyMode")
res0: Option[String] = None
scala> sc.getConf.getOption("spark.shuffle.memoryFraction")
res2: Option[String] = None
scala> sc.getConf.getOption("spark.storage.memoryFraction")
res3: Option[String] = None
scala> sc.getConf.getOption("spark.storage.unrollFraction")
res4: Option[String] = None
我是否正确检查配置?如果是,spark.memory.useLegacyMode
及其所有关联属性设置为None
时会发生什么情况?