2015-02-17 12 views

Antwort

12

Schauen Sie sich this blog von Cloudera, die die neue Speicherverwaltung in YARN erklärt.

Hier die relevanten Bits:

... Eine Implementierung Detail dieser Änderung, die Anwendungen von Verhungern im Rahmen dieser neuen Flexibilität verhindert der Begriff der reservierten Containern ist. Stellen Sie sich vor, dass zwei Jobs ausgeführt werden, die jeweils über genügend Aufgaben verfügen, um mehr als das gesamte Cluster zu sättigen. Ein Job möchte, dass jeder seiner Mapper 1 GB erhält, und ein anderer Job möchte, dass seine Mapper 2 GB erhalten. Angenommen, der erste Job startet und füllt den gesamten Cluster auf. Wenn eine der Aufgaben beendet wird, bleibt ein 1-GB-Steckplatz offen. Auch wenn der zweite Job den Platz verdient, wird er durch eine naive Politik dem ersten gegeben, weil es der einzige Job mit passenden Aufgaben ist. Dies könnte dazu führen, dass der zweite Job auf unbestimmte Zeit ausgehungert wird. Um diese unglückliche Situation zu vermeiden, wenn Speicherplatz auf einem Knoten einer Anwendung angeboten wird, reserviert sie ihn, wenn sie nicht sofort verwendet werden kann, und keiner anderen Anwendung kann ein Container auf diesem Knoten zugewiesen werden, bis die Reservierung erfüllt ist. Jeder Knoten darf nur einen reservierten Container haben. Die gesamte reservierte Speichermenge wird in der Benutzeroberfläche des ResourceManager gemeldet. Eine hohe Zahl bedeutet, dass es länger dauern kann, bis neue Jobs Platz finden. ,,,