[英]Analyzing spark executor memory dump { After few days yarn container runs of out memory}
我正在研究spark 1.3,我的應用程序是一個火花流應用程序。 我用紗線作為資源經理。 我的應用程序運行良好幾天,然后定期激活作業丟失執行程序。 當我查看node_manager日志時,我發現了一個異常:
containerId XXXX is running beyond physical memory limits. Current usage: 11.1 GB of 11 GB physical memory used; 13.4 GB of 23.1 GB virtual memory used. Killing container.
我對這個例外的問題如下:
我理解11G會記住執行程序運行。 但我在spark-defaults.conf中將10G設置為執行程序內存。 那么如何將11G分配給執行者以及這里提到的虛擬內存是什么?
當容器內存不足時,我是否可以在堆和堆內存轉儲中看到任何工具或方法,或者是否有一種方法可以遠程連接到容器JVM並查看哪些對象是causig內存泄漏。
謝謝
spark.yarn.executor.memoryOverhead
屬性: spark.yarn.executor.memoryOverhead
executorMemory * 0.10,最小值為384每個執行程序要分配的堆外內存量(以兆字節為單位)。 這是一個內存,可以解決諸如VM開銷,實習字符串,其他本機開銷等問題。這往往會隨着執行程序的大小而增加(通常為6-10%)。
在你的情況下,它大約是1G。
-XX:+HeapDumpOnOutOfMemoryError
和-XX:HeapDumpPath=..
只需通過spark.executor.extraJavaOptions
添加這些屬性spark.executor.extraJavaOptions
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.