Como corrigir "A tentativa de tarefa_201104251139_0295_r_000006_0 falhou ao relatar o status por 600 segundos."

Eu escrevi um trabalho de mapreduce para extrair algumas informações de um conjunto de dados. O conjunto de dados é a classificação dos usuários sobre filmes. O número de usuários é de cerca de 250 mil e o número de filmes é de cerca de 300 mil. A saída do mapa é<user, <movie, rating>*> and <movie,<user,rating>*>. No redutor, processarei esses pares.

Mas quando executo o trabalho, o mapeador é concluído conforme o esperado, mas o redutor sempre reclama que

Task attempt_* failed to report status for 600 seconds.

Sei que isso ocorreu devido à falha na atualização do status, então adicionei uma chamada acontext.progress() no meu código assim:

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

Infelizmente, isso não ajuda. Muitas tarefas de redução ainda falharam.

Aqui está o log:

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, o erro ocorreu na fase de redução para cópia, o log diz:

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

Obrigado pela ajuda

questionAnswers(5)

yourAnswerToTheQuestion