Ich führe einen Hadoop-Streaming-Job aus. Dieser Job wird mit Fehler:Hadoop-Speichergrenze überschritten
"TaskTree [pid=13549,tipID=attempt_201202130706_121058_m_000000_0] is running beyond memory-limits. Current usage : 1667149824bytes. Limit : 1610612736bytes. Killing task."
Für diesen Job mapred.job.map.memory.mb auf 1536. gesetzt ist diese Einstellung auf 1536*2 = 3072
hilft, aber verursacht 1 Karte Aufgabe 2 Slots zu verwenden, die nicht wünschenswert ist, .
Als ich diesen Job auf dem Host ausgeführt habe, habe ich festgestellt, dass er einen Spitzenspeicher von 1,07 GB verwendet, was weit unter 1536 MB liegt. Ich verifizierte die Speicherauslastung des Jobs auf dem Host mit "top" und einem Skript, das "ps -o vsz=${pid}"
bei jeder Sekunde verwendet.
Kann jemand bitte mir helfen, dieses Problem zu verstehen/debuggen/zu beheben.
Sieht aus wie YARN, welche Hadoop-Version verwenden Sie? –
$ hadoop Version Hadoop 0.20.205.0.3.1112071329 ... – sunillp
sunillp, überprüfen Sie dies von stackoverflow, [link] http://stackoverflow.com/questions/8017500/specifying-memory-limits-with-hadoop –