2015-02-17 11 views

risposta

12

Dai un'occhiata a this blog da Cloudera che spiega la nuova gestione della memoria in YARN.

Ecco i bit pertinenti:

... un dettaglio di implementazione di questo cambiamento, che impedisce alle applicazioni di morire di fame in questa nuova flessibilità è la nozione di contenitori riservati. Immaginate due processi in esecuzione che hanno ciascuno abbastanza compiti da saturare più dell'intero cluster. Un lavoro richiede a ciascuno dei suoi mapper di ottenere 1 GB e un altro lavoro richiede ai suoi mapper di ottenere 2 GB. Supponiamo che il primo lavoro inizi e riempia l'intero cluster. Ogni volta che uno dei suoi compiti termina, lascerà aperto uno slot da 1 GB. Anche se il secondo lavoro merita lo spazio, una politica ingenua la darà al primo perché è l'unico lavoro con compiti adatti. Ciò potrebbe causare la morte del secondo lavoro indefinitamente. Per evitare questa sfortunata situazione, quando lo spazio su un nodo viene offerto a un'applicazione, se l'applicazione non può immediatamente utilizzarlo, lo riserva e nessun'altra applicazione può essere allocata su quel nodo fino a quando la prenotazione non viene soddisfatta. Ogni nodo può avere solo un contenitore riservato. L'importo totale della memoria riservata è riportato nell'interfaccia utente di ResourceManager. Un numero elevato significa che potrebbe richiedere più tempo per i nuovi lavori di ottenere spazio. ,,,

Problemi correlati