hadoop: diferencia entre 0 reductor y reductor de identidad?

Solo bash confirmar mi comprensión de la diferencia entre 0 reductor y reductor de identidad.

  • 0 reductor significa que el paso de reducción se saltará y la salida del asignador será la salida final
  • ¿El reductor de identidad significa que la reorganización / clasificación seguirá teniendo lugar?

Tu comprensión es correcta. Lo definiría como sigue: si no necesita clasificar los resultados del mapa, establece 0 reducido y el trabajo se llama solo mapa.
Si necesita ordenar los resultados de la asignación, pero no necesita ninguna agregación, elige el reductor de identidad.
Y para completar la imagen, tenemos un tercer caso: necesitamos agregación y, en este caso, necesitamos reductor.

Otro caso de uso para usar Identity Reducer es combinar todos los resultados en archivos de salida <# de reductores>. Esto puede ser útil si está usando Amazon Web Services para escribir directamente en S3, especialmente si el resultado del mapper es pequeño (por ejemplo, un grep / búsqueda de un registro), y tiene muchos mapeadores (por ejemplo, 1000).

Depende de los requisitos de su negocio. Si está haciendo una palabra, debe reducir la salida de su mapa para obtener un resultado total. Si solo desea cambiar las palabras a mayúsculas, no necesita reducirlas.

La principal diferencia entre “No Reducer” (mapred.reduce.tasks = 0) y “Standard reducer” que es IdentityReducer (mapred.reduce.tasks = 1 etc.) es cuando usas “No reducer”, no hay procesos de partición y mezcla después de MAP escenario. Por lo tanto, en este caso obtendrá salida “pura” de sus mapeadores sin ningún procesamiento posterior. Ayuda en el desarrollo y depuración de puposas, pero no solo.