Ich versuche also einige Hadoop-Jobs auf AWS R3.4xLarge-Maschinen auszuführen. Sie haben 16 Vcores und 122 Gigabyte RAM zur Verfügung.Hadoop erstellt nicht genügend Container, wenn mehr Knoten verwendet werden
Jeder meiner Mapper benötigt etwa 8 Gigs RAM und einen Thread, also sind diese Maschinen sehr perfekt für den Job.
Ich habe mapreduce.memory.mb bis 8192 gesetzt, und mapreduce.map.java.opts auf -Xmx6144 Dies soll in etwa 14 Mapper (in der Praxis näher an 12) führt, auf jeder Maschine ausgeführt wird.
Dies ist in der Tat der Fall für ein 2-Slave-Setup, wo der Scheduler 90 Prozent Auslastung des Clusters zeigt.
Bei der Skalierung auf beispielsweise 4 Slaves scheint es, dass hadoop einfach nicht mehr Mapper erstellt. In der Tat schafft es weniger.
Auf meinem 2-Slave-Setup hatte ich knapp 30 Mapper gleichzeitig laufen, auf vier Slaves hatte ich etwa 20. Die Maschinen waren bei knapp 50 Prozent Auslastung.
Die Vcores sind da, der physische Speicher ist da. Was zum Teufel fehlt? Warum erstellt Hadoop nicht mehr Container?