2015-11-23 14 views
8

Sono nuovo di Hadoop. Quando eseguo un lavoro, vedo l'allocazione delle risorse aggregate per quel lavoro come 251248654 MB-secondi, 24462 vcore-secondi. Tuttavia, quando trovo i dettagli sul cluster, mostra che ci sono 888 Vcores-total e 15.90 TB Memory-total. Qualcuno può dirmi come questo è collegato? cosa fa riferimento a MB-secondo e Vcore-secondi per il lavoro.Assegnazione risorse aggregate per un lavoro in YARN

Esiste materiale online per conoscerli? Ho provato a navigare, a dint ottenere una risposta corretta

risposta

15
VCores-Total: Indicates the total number of VCores available in the cluster 
Memory-Total: Indicates the total memory available in the cluster. 

Per es. Ho un cluster a nodo singolo, in cui, ho impostato i requisiti di memoria per container: 1228 MB (determinati da config: yarn.scheduler.minimum-allocation-mb) e vCores per contenitore a 1 vCore (determinato da config: yarn.scheduler.minimum-allocation-vcores).

Ho impostato: yarn.nodemanager.resource.memory-mb a 9830 MB. Quindi, ci possono essere totalmente 8 contenitori per nodo (9830/1228 = 8).

Quindi, per il mio gruppo:

VCores-Total = 1 (node) * 8 (containers) * 1 (vCore per container) = 8 
Memory-Total = 1 (node) * 8 (containers) * 1228 MB (memory per container) = 9824 MB = 9.59375 GB = 9.6 GB 

La figura seguente, mostra il mio metriche a grappolo: enter image description here

Ora vediamo "MB-secondi" e "Vcore-secondi" . Secondo la descrizione nel codice (ApplicationResourceUsageReport.java):

MB-secondi: La quantità aggregato di memoria (in megabyte) la domanda è assegnato volte il numero di secondi l'applicazione è stata esecuzione.

vcore-secondi: il numero aggregato di vcore che l'applicazione ha assegnato per il numero di secondi in cui è stata eseguita l'applicazione.

La descrizione è auto-esplicativa (ricordare la parola chiave: Aggregato).

Lasciatemi spiegare questo con un esempio. ho fatto un lavoro DistCp (che ha generato 25 contenitori), per il quale ho ottenuto il seguente:

Aggregate Resource Allocation : 10361661 MB-seconds, 8424 vcore-seconds 

Ora, facciamo qualche calcolo approssimativo di quanto tempo ogni contenitore ha preso:

For memory: 
10361661 MB-seconds = 10361661/25 (containers)/1228 MB (memory per container) = 337.51 seconds = 5.62 minutes 

For CPU 
8424 vcore-seconds = 8424/25 (containers)/1 (vCore per container) = 336.96 seconds = 5.616 minutes 

Questo indica in media, ogni contenitore ha impiegato 5,62 minuti per essere eseguito.

Spero che questo chiarisca. Puoi eseguire un lavoro e confermarlo tu stesso.

+0

Grazie mille Manjunath. Era molto preciso e molto ben spiegato. – blackfury

+0

come potrei ottenere il numero di contenitori presenti in ogni nodo e vcores assegnati per container ?? il nostro cluster ha un totale di 74 nodi. Potrei ottenere questi dettagli dai dettagli del cluster in http: // host: 8088/collegamento cluster. Ma non è stato possibile trovare altri dettagli – blackfury

+0

È possibile ottenere il numero di contenitori per ciascun nodo utilizzando l'host: 8080/cluster/nodi /. Qui mostra i dettagli per ogni nodo –