我有一个使用PySpark提取特征的应用程序,但是该应用程序总是被错误杀死。
Container killed by YARN for exceeding memory limits. 14.4 GB of 14 GB physical memory used.
Consider boosting spark.yarn.executor.memoryOverhead.
在Spark Web UI中,它总是在CombineByKey运算符处终止。
从NodeManager的日志中显示python worker进程使用了如此多的内存。
但是我从来没有为python worker设置内存。在documentation中,有一个设置spark.python.worker.memory
,默认值为512m,但是一个python worker进程使用了将近10g的内存,并且yarn杀死了该容器。
为什么spark.python.worker.memory
设置不起作用?
有人可以给我看一些有关分析python worker内存的参考吗?
非常感谢。