Cómo arreglar "El intento de tarea_201104251139_0295_r_000006_0 no pudo informar el estado durante 600 segundos".

Escribí un trabajo de mapreduce para extraer información de un conjunto de datos. El conjunto de datos es la calificación de los usuarios sobre películas. El número de usuarios es de aproximadamente 250K y el número de películas es de aproximadamente 300k. La salida del mapa es<user, <movie, rating>*> and <movie,<user,rating>*>. En el reductor, procesaré estos pares.

Pero cuando ejecuto el trabajo, el asignador se completa como se esperaba, pero el reductor siempre se queja de que

Task attempt_* failed to report status for 600 seconds.

Sé que esto se debe a que no se pudo actualizar el estado, así que agregué una llamada acontext.progress() en mi código como este:

int count = 0;
while (values.hasNext()) {
  if (count++ % 100 == 0) {
    context.progress();
  }
  /*other code here*/
}

Desafortunadamente, esto no ayuda. Todavía fallan muchas tareas de reducción.

Aquí está el registro:

Task attempt_201104251139_0295_r_000014_1 failed to report status for 600 seconds. Killing!
11/05/03 10:09:09 INFO mapred.JobClient: Task Id : attempt_201104251139_0295_r_000012_1, Status : FAILED
Task attempt_201104251139_0295_r_000012_1 failed to report status for 600 seconds. Killing!
11/05/03 10:09:09 INFO mapred.JobClient: Task Id : attempt_201104251139_0295_r_000006_1, Status : FAILED
Task attempt_201104251139_0295_r_000006_1 failed to report status for 600 seconds. Killing!

BTW, el error ocurrió en la fase de reducción a copia, el registro dice:

reduce > copy (28 of 31 at 26.69 MB/s) > :Lost task tracker: tracker_hadoop-56:localhost/127.0.0.1:34385

Gracias por la ayuda

Respuestas a la pregunta(5)

Su respuesta a la pregunta