dom*_*kck 21 python hadoop hadoop-yarn apache-spark pyspark
阅读完文档之后,我不明白在YARN上运行的Spark是如何考虑Python内存消耗的.
是否计入spark.executor.memory,spark.executor.memoryOverhead还是在哪里?
特别是我有一个PySpark应用程序spark.executor.memory=25G,spark.executor.cores=4我遇到YARN因超出内存限制而被杀死的频繁容器.map在RDD上运行时出错.它运行在相当大量的复杂Python对象上,因此预计会占用一些非常重要的内存但不会占用25GB.我应该如何配置不同的内存变量以用于繁重的Python代码?
mrs*_*vas 11
我尝试将内存增加到spark.python.worker.memory默认值(512m),因为Python代码很重,并且此属性值不计入spark.executor.memory.
聚合期间每个python worker进程使用的内存量,格式与JVM内存字符串相同(例如512m,2g).如果聚合期间使用的内存超过此数量,则会将数据溢出到磁盘中.链接
MEMORY_OVERHEAD_FRACTION = 0.10
MEMORY_OVERHEAD_MINIMUM = 384
val executorMemoryOverhead =
max(MEMORY_OVERHEAD_FRACTION * ${spark.executor.memory}, MEMORY_OVERHEAD_MINIMUM))
Run Code Online (Sandbox Code Playgroud)
该物业是spark.{yarn|mesos}.executor.memoryOverhead为YARN和Mesos.
YARN杀死比他们要求的是这些都占用更多的内存的过程的总和 executorMemoryOverhead及executorMemory.
在worker使用的给定图像python进程中
spark.python.worker.memory,spark.yarn.executor.memoryOverhead+spark.executor.memory是特定的JVM.
其他资源Apache邮件线程
| 归档时间: |
|
| 查看次数: |
2536 次 |
| 最近记录: |