java hadoop mapreduce distributed-caching

java - Caché distribuida y rendimiento Hadoop



mapreduce distributed-caching (2)

Quiero aclarar mi comprensión sobre la caché distribuida de hadoop. Sé que cuando agregamos archivos a la memoria caché distribuida, los archivos se cargan en el disco de cada nodo del clúster.

Entonces, ¿cómo se transmiten los datos de los archivos a todos los nodos en el clúster? ¿Es a través de la red? Si es así, ¿no causará tensión en la red?

Tengo los siguientes pensamientos, ¿están en lo cierto?

Si los archivos son grandes, ¿no habrá congestión de red?

Si la cantidad de nodos es grande, aunque los archivos sean de tamaño mediano o pequeño, la replicación de los archivos y la transmisión a todos los nodos, ¿no causará congestión de red y restricciones de memoria?

Por favor, ayúdame a comprender estos conceptos.

¡¡¡Gracias!!!


  1. Sí, los archivos se transfieren a través de la red, generalmente a través de HDFS. No causará más tensión en la red que el uso de HDFS para cualquier cosa que no sea una tarea local de datos.

  2. Si los archivos son grandes, existe la posibilidad de congestión de red, pero ya está empujando su jar a todos estos rastreadores de tareas, de modo que, siempre que sus archivos no sean demasiado más grandes que su jar, su sobrecarga no debería ser demasiado.

  3. La replicación de los archivos está completamente separada de la cantidad de rastreadores de tareas que finalmente extraerán este archivo. La replicación también estará encadenada de un nodo a otro y será el costo de tener un sistema de archivos distribuido tolerante a errores sin importar qué. Nuevamente, la congestión de la red no es más un problema que empujar su jar a todos los rastreadores de tareas, asumiendo que los archivos en el caché distribuido son del tamaño equivalente de sus jarras.

En general, la sobrecarga de la memoria caché distribuida es minúscula siempre que se use según lo previsto, como una forma de enviar datos en caché razonablemente pequeños para que sean locales para los rastreadores de tareas que realizan el cálculo.

Editar: Aquí está la documentación de Caché distribuida para 0.20. Tenga en cuenta que los archivos se especifican mediante urls. Usualmente usaría algo en su hdfs local: // setup.


Creo que lo que entiendes para el caché distribuido es correcto. Porque creo que también :) Tal vez aumentar la replicación de la memoria caché distribuida puede reducir la transferencia de red