Map-Reduce es un modelo de programación que se utiliza para procesar conjuntos de datos de gran tamaño en sistemas distribuidos en Hadoop. La fase de mapa y la fase de reducción son las dos partes importantes principales de cualquier trabajo de Map-Reduce. Las aplicaciones de Map-Reduce están limitadas por el ancho de banda disponible en el clúster porque hay un movimiento de datos de Mapper a Reducer.
Por ejemplo , si tenemos 1 GBPS (Gigabits por segundo) de la red en nuestro clúster y estamos procesando datos que están en el rango de cientos de PB (Peta Bytes). Mover un conjunto de datos tan grande a más de 1 GBPS lleva mucho tiempo de procesamiento. El Combinador se usa para resolver este problema al minimizar los datos que se barajaron entre Map y Reduce.
En este artículo, vamos a cubrir Combiner en Map-Reduce cubriendo todos los aspectos a continuación.
- ¿Qué es un combinador?
- Cómo funciona el combinador
- Ventaja de los combinadores
- Desventaja del combinador
¿Qué es un combinador?
Combiner siempre funciona entre Mapper y Reducer. La salida producida por Mapper es la salida intermedia en términos de pares clave-valor que es de tamaño masivo. Si alimentamos directamente esta enorme salida al Reductor, eso dará como resultado un aumento de la congestión de la red . Entonces, para minimizar esta congestión de red, debemos colocar un combinador entre Mapper y Reducer. Estos combinadores también se conocen como semirreductores . No es necesario agregar un combinador a su programa Map-Reduce, es opcional. Combiner también es una clase en nuestro programa java como la clase Map y Reduce que se usa entre este Map y Reduceclases Combiner nos ayuda a producir detalles abstractos o un resumen de conjuntos de datos muy grandes. Cuando procesamos o manejamos conjuntos de datos muy grandes, usar Hadoop Combiner es muy necesario, lo que resulta en una mejora del rendimiento general.
¿Cómo funciona el combinador?
En el ejemplo anterior, podemos ver que dos Mapeadores contienen datos diferentes. el archivo de texto principal se divide en dos mapeadores diferentes. A cada mapeador se le asigna procesar una línea diferente de nuestros datos. en nuestro ejemplo anterior, tenemos dos líneas de datos, por lo que tenemos dos mapeadores para manejar cada línea. Los mapeadores están produciendo los pares clave-valor intermedios, donde el nombre de la palabra en particular es clave y su conteo es su valor . Por ejemplo, para los datos Geeks For Geeks For , los pares clave-valor se muestran a continuación.
// Key Value pairs generated for data Geeks For Geeks For (Geeks,1) (For,1) (Geeks,1) (For,1)
Los pares clave-valor generados por Mapper se conocen como pares intermedios de clave-valor o salida intermedia de Mapper. Ahora podemos minimizar el número de estos pares clave-valor introduciendo un combinador para cada Mapeador en nuestro programa. En nuestro caso, tenemos 4 pares clave-valor generados por cada uno de los Mapper. dado que estos pares intermedios de clave-valor no están listos para alimentar directamente a Reducer porque eso puede aumentar la congestión de la red, por lo que Combiner combinará estos pares intermedios de clave-valor antes de enviarlos a Reducer. El combinador combina estos pares clave-valor intermedios según su clave . Para el ejemplo anterior de datos Geeks For Geeks Forel combinador los reducirá parcialmente fusionando los mismos pares según su valor clave y generará nuevos pares clave-valor como se muestra a continuación.
// Partially reduced key-value pairs with combiner (Geeks,2) (For,2)
Con la ayuda de Combiner, la salida de Mapper se redujo parcialmente en términos de tamaño (pares clave-valor) que ahora pueden estar disponibles para Reducer para un mejor rendimiento. Ahora el Reductor volverá a reducir la salida obtenida de los combinadores y producirá la salida final que se almacena en HDFS (Sistema de archivos distribuidos de Hadoop) .
Ventaja de los combinadores
- Reduce el tiempo necesario para transferir los datos de Mapper a Reducer.
- Reduce el tamaño de la salida intermedia generada por Mapper.
- Mejora el rendimiento al minimizar la congestión de la red.
Desventaja de los combinadores
- Los pares clave-valor intermedios generados por los mapeadores se almacenan en el disco local y los combinadores se ejecutarán más adelante para reducir parcialmente la salida, lo que resulta en una costosa entrada y salida del disco.
- El trabajo map-Reduce no puede depender de la función del combinador porque no existe tal garantía en su ejecución.
Publicación traducida automáticamente
Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA