1, практическое применение
val sc = new SparkContext(new SparkConf().
setAppName("product3_source").
set("spark.serializer", "org.apache.spark.serializer.KryoSerializer").
set("spark.memory.useLegacyMode", "true").
set("spark.storage.memoryFraction","0.2").
set("spark.shuffle.memoryFraction","0.7")
)
2, вычисляет фактическую память
spark.storage.safetyFraction указать долю зоны безопасности, значение по умолчанию равно 0,9
spark.storage.memoryFraction указано, значение по умолчанию равно 0,6
0,9 × 0,6 = 0,54
указано Spark.Shuffle.safetyFraction отношения безопасного района, значение по умолчанию параметра составляет 0,8
Spark.Shuffle.memoryFraction указаны, значение по умолчанию равно 0,2,
0,8 × 0,2 = 0,16
3, spark.yarn.executor.memoryOverhead
Когда исполнитель выполнена с памятью может превышать исполнитель-memoy, он будет резервировать часть исполнителя памяти дополнительно. spark.yarn.executor.memoryOverhead представляют эту память.
так
executorMem=executorMemory +spark.yarn.executor.memoryOverhead