Tabla de contenido:
Video: Hadoop MapReduce Example | MapReduce Programming | Hadoop Tutorial For Beginners | Edureka 2025
Para comprender completamente las capacidades de Hadoop MapReduce, es importante diferenciar entre MapReduce (el algoritmo) y implementación de MapReduce. Hadoop MapReduce es una implementación del algoritmo desarrollado y mantenido por el proyecto Apache Hadoop.
Es útil pensar en esta implementación como un motor MapReduce, porque así es exactamente como funciona. Proporciona entrada (combustible), el motor convierte la entrada en salida de manera rápida y eficiente, y obtiene las respuestas que necesita.
Hadoop MapReduce incluye varias etapas, cada una con un conjunto importante de operaciones que ayudan a alcanzar su objetivo de obtener las respuestas que necesita de grandes volúmenes de datos. El proceso comienza con una solicitud del usuario para ejecutar un programa MapReduce y continúa hasta que los resultados se escriben nuevamente en el HDFS.
HDFS y MapReduce realizan su trabajo en nodos en un clúster alojado en bastidores de servidores de productos. Para simplificar la discusión, el diagrama muestra solo dos nodos.
Prepare los big data
Cuando un cliente solicita la ejecución de un programa MapReduce, el primer paso es localizar y leer el archivo de entrada que contiene los datos sin formato. El formato de archivo es completamente arbitrario, pero los datos deben convertirse a algo que el programa pueda procesar. Esta es la función de InputFormat y RecordReader. InputFormat decide cómo se dividirá el archivo en partes más pequeñas para su procesamiento mediante una función llamada InputSplit.
A continuación, asigna un RecordReader para transformar los datos sin formato para que el mapa los procese. Varios tipos de RecordReaders se suministran con Hadoop, que ofrece una amplia variedad de opciones de conversión. Esta característica es una de las formas en que Hadoop administra la gran variedad de tipos de datos que se encuentran en los problemas de big data.
Permite que comience el mapa de big data
Tus datos ahora están en una forma aceptable para mapear. Para cada par de entrada, se llama a una instancia distinta de mapa para procesar los datos. Pero, ¿qué hace con el resultado procesado y cómo puede hacer un seguimiento de ellos?
Map tiene dos capacidades adicionales para abordar las preguntas. Debido a que el mapa y la reducción necesitan trabajar en conjunto para procesar sus datos, el programa necesita recolectar el resultado de los mapeadores independientes y pasarlo a los reductores. Esta tarea la realiza un OutputCollector. Una función Reporter también proporciona información recopilada de las tareas del mapa para que sepa cuándo se completan las tareas del mapa o si.
Todo este trabajo se realiza en múltiples nodos en el cluster de Hadoop simultáneamente.Es posible que haya casos en los que deba acumularse el resultado de ciertos procesos de mapeo antes de que los reductores puedan comenzar. O bien, algunos de los resultados intermedios pueden necesitar procesarse antes de la reducción.
Además, parte de esta salida puede estar en un nodo diferente del nodo donde se ejecutarán los reductores para esa salida específica. La recopilación y la mezcla de resultados intermedios se realizan mediante un particionador y un género. Las tareas del mapa entregarán los resultados a una partición específica como entradas a las tareas de reducción.
Después de que se hayan completado todas las tareas del mapa, los resultados intermedios se recopilan en la partición y se produce una mezcla, clasificando la salida para un procesamiento óptimo por reducir.
Reducir y combinar para datos grandes
Para cada par de salida, se llama a reducir para realizar su tarea. De forma similar a la del mapa, reduce la producción mientras se procesan todas las tareas. Reducir no puede comenzar hasta que todo el mapeo esté hecho. La salida de reduce también es una clave y un valor. Si bien esto es necesario para que reduzca su trabajo, puede que no sea el formato de salida más efectivo para su aplicación.
Hadoop proporciona una función OutputFormat, y funciona muy parecido a InputFormat. OutputFormat toma el par clave-valor y organiza la salida para escribir en HDFS. La última tarea es escribir los datos en HDFS. Esto es realizado por RecordWriter, y se desempeña de manera similar a RecordReader, excepto en reversa. Toma los datos de OutputFormat y los escribe en HDFS en la forma necesaria para los requisitos del programa.
La coordinación de todas estas actividades se gestionó en versiones anteriores de Hadoop mediante un programador de tareas. Este programador era rudimentario y, a medida que la combinación de trabajos cambiaba y crecía, era evidente que era necesario un enfoque diferente. La deficiencia principal en el programador antiguo era la falta de gestión de recursos. La última versión de Hadoop tiene esta nueva capacidad.
Hadoop MapReduce es el corazón del sistema Hadoop. Proporciona todas las capacidades que necesita para dividir los grandes datos en fragmentos manejables, procesar los datos en paralelo en su clúster distribuido y luego poner los datos a disposición para el consumo del usuario o el procesamiento adicional. Y hace todo este trabajo de una manera muy resistente y tolerante a fallas. Este es solo el comienzo.
