2012-10-07 14 views
6

Cuando ejecuto "hadoop job -status xxx", imprima la siguiente lista.¿Cuál es la diferencia entre las tareas de mapa local de Rack y las tareas de mapa de datos locales?

Rack-local map tasks=124 
Data-local map tasks=6 

¿Cuál es la diferencia entre las tareas de mapa en bastidor local y las tareas de mapa de datos locales?

+3

La respuesta de Thoma es correcta, pero me preocuparía la cantidad de tareas locales en rack frente a las de datos locales. Desea muchas más tareas locales de datos que eso. En clústeres más grandes, normalmente veo que ~ 95% de ellos son datos locales. Contigo es todo lo contrario. –

+0

@DonaldMiner sí, eso no es bueno. Sin embargo, depende en gran medida de la cantidad de trabajos que se ejecutan en ese clúster. A veces es necesario sacrificar el rendimiento de un trabajo, para que el otro pueda ser más rápido. –

+0

@ThomasJungblut ese número todavía no suena bien. En clústeres más grandes con replicación 3x, incluso con capacidad de espacio total, he visto ese número mucho más alto. –

Respuesta

9

En una tarea de datos locales, no es necesario copiar nada. Eso es porque el bloque está físicamente en el mismo servidor que el cálculo.

El siguiente nivel es la tarea local del rack, aquí los datos deben copiarse, porque no hay una copia local del bloque deseado disponible. Tenga en cuenta que rack-local solo copia en el rack de conmutación local de la red.

También existe el peor caso, donde los datos no están disponibles localmente, ni en el mismo bastidor. Entonces esto se debe copiar sobre dos conmutadores a los hosts donde se ejecuta el cálculo. No sé si hay un contador para eso, pero básicamente debe ser #all tasks - #data-local tasks - #rack-local tasks.

1

Me gustaría señalar que proporcionar una red gigabit (o más rápida) entre computadoras dentro del mismo bastidor es mucho más barata que para una mayor cantidad de computadoras.
La causa principal es el hecho de que los conmutadores de Ethernet no son escalables y no podemos tener dicho conmutador para cientos de puertos a un precio razonable.
Debido a esto, hadoop intenta ejecutar tareas al menos en el mismo rack, si no puede hacerlo en el nodo donde se almacenan los datos.

Cuestiones relacionadas