причины могут быть:

исал задание mapreduce для извлечения некоторой информации из набора данных. Набор данных - это рейтинг пользователей о фильмах. Количество пользователей составляет около 250 тыс., А количество фильмов около 300 тыс. Вывод карты<user, <movie, rating>*> and <movie,<user,rating>*>, В редукторе я обработаю эти пары.

Но когда я запускаю работу, маппер завершает работу, как ожидалось, но редуктор всегда жалуется, что

Task attempt_* failed to report status for 600 seconds.

Я знаю, что это связано с невозможностью обновить статус, поэтому я добавил вызовcontext.progress() в моем коде так:

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

К сожалению, это не помогает. Тем не менее, многие задачи по сокращению не удалось.

Вот журнал:

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!

Кстати, ошибка произошла в фазе сокращения до копирования, в журнале говорится:

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

Спасибо за помощь.

Ответы на вопрос(3)

Ваш ответ на вопрос