Mientras se ejecuta el trabajo de reducción de mapas, ¿cómo se deciden las ranuras para las tareas de reducción y asignación?

La programación en mapreduce es un método para asignar recursos a trabajos. Map reduce utiliza Fair Scheduler para que todos los trabajos obtengan, en promedio, una parte igual de recursos con el tiempo. Cuando hay un solo trabajo en ejecución, ese trabajo utiliza todo el clúster. Cuando se envían otros trabajos, los espacios de tareas que se liberan se asignan a los nuevos trabajos, de modo que cada trabajo obtiene aproximadamente la misma cantidad de tiempo de CPU.

A diferencia del planificador predeterminado de Hadoop, que forma una cola de trabajos, esto permite que los trabajos cortos finalicen en un tiempo razonable mientras no se pierden los trabajos largos. También es una manera fácil de compartir un clúster entre múltiples usuarios. El intercambio equitativo también puede funcionar con las prioridades laborales: las prioridades se utilizan como ponderaciones para determinar la fracción del tiempo total de cálculo que obtiene cada trabajo.

Espero que esto ayude !

Para ranuras de mapa:

  1. Se hace el primer intento para obtener una ranura en el nodo donde está presente el bloque de datos a procesar para que los datos no se muevan a través de los nodos para su procesamiento.
  2. Si no hay una ranura disponible en ese nodo, se intenta obtener una ranura en el mismo bastidor, para que los datos no se muevan a través de los bastidores.
  3. Finalmente, si una ranura no está disponible en el mismo bastidor también, se elige una ranura libre aleatoria.

Para el reductor, se seleccionan ranuras aleatorias porque los datos de varios mapeadores se copiarán de todos modos en el nodo del reductor.