Слишком много сбоев выборки: Hadoop в кластере (x2)

#hadoop

#hadoop

Вопрос:

Я использую Hadoop последнюю неделю или около того (пытаясь разобраться с этим), и хотя мне удалось настроить многоузловой кластер (2 машины: 1 ноутбук и небольшой рабочий стол) и получать результаты, я всегда, кажется, сталкиваюсь со «Слишком большим количеством сбоев выборки» при запуске задания hadoop.

Пример вывода (в тривиальном примере wordcount) является:

 hadoop@ap200:/usr/local/hadoop$ bin/hadoop jar hadoop-examples-0.20.203.0.jar wordcount sita sita-output3X
11/05/20 15:02:05 INFO input.FileInputFormat: Total input paths to process : 7
11/05/20 15:02:05 INFO mapred.JobClient: Running job: job_201105201500_0001
11/05/20 15:02:06 INFO mapred.JobClient:  map 0% reduce 0%
11/05/20 15:02:23 INFO mapred.JobClient:  map 28% reduce 0%
11/05/20 15:02:26 INFO mapred.JobClient:  map 42% reduce 0%
11/05/20 15:02:29 INFO mapred.JobClient:  map 57% reduce 0%
11/05/20 15:02:32 INFO mapred.JobClient:  map 100% reduce 0%
11/05/20 15:02:41 INFO mapred.JobClient:  map 100% reduce 9%
11/05/20 15:02:49 INFO mapred.JobClient: Task Id :      attempt_201105201500_0001_m_000003_0, Status : FAILED
Too many fetch-failures
11/05/20 15:02:53 INFO mapred.JobClient:  map 85% reduce 9%
11/05/20 15:02:57 INFO mapred.JobClient:  map 100% reduce 9%
11/05/20 15:03:10 INFO mapred.JobClient: Task Id : attempt_201105201500_0001_m_000002_0, Status : FAILED
Too many fetch-failures
11/05/20 15:03:14 INFO mapred.JobClient:  map 85% reduce 9%
11/05/20 15:03:17 INFO mapred.JobClient:  map 100% reduce 9%
11/05/20 15:03:25 INFO mapred.JobClient: Task Id : attempt_201105201500_0001_m_000006_0, Status : FAILED
Too many fetch-failures
11/05/20 15:03:29 INFO mapred.JobClient:  map 85% reduce 9%
11/05/20 15:03:32 INFO mapred.JobClient:  map 100% reduce 9%
11/05/20 15:03:35 INFO mapred.JobClient:  map 100% reduce 28%
11/05/20 15:03:41 INFO mapred.JobClient:  map 100% reduce 100%
11/05/20 15:03:46 INFO mapred.JobClient: Job complete: job_201105201500_0001
11/05/20 15:03:46 INFO mapred.JobClient: Counters: 25
11/05/20 15:03:46 INFO mapred.JobClient:   Job Counters 
11/05/20 15:03:46 INFO mapred.JobClient:     Launched reduce tasks=1
11/05/20 15:03:46 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=72909
11/05/20 15:03:46 INFO mapred.JobClient:     Total time spent by all reduces waiting  after reserving slots (ms)=0
11/05/20 15:03:46 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
11/05/20 15:03:46 INFO mapred.JobClient:     Launched map tasks=10
11/05/20 15:03:46 INFO mapred.JobClient:     Data-local map tasks=10
11/05/20 15:03:46 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=76116
11/05/20 15:03:46 INFO mapred.JobClient:   File Output Format Counters 
11/05/20 15:03:46 INFO mapred.JobClient:     Bytes Written=1412473
11/05/20 15:03:46 INFO mapred.JobClient:   FileSystemCounters
11/05/20 15:03:46 INFO mapred.JobClient:     FILE_BYTES_READ=4462381
11/05/20 15:03:46 INFO mapred.JobClient:     HDFS_BYTES_READ=6950740
11/05/20 15:03:46 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=7546513
11/05/20 15:03:46 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=1412473
11/05/20 15:03:46 INFO mapred.JobClient:   File Input Format Counters 
11/05/20 15:03:46 INFO mapred.JobClient:     Bytes Read=6949956
11/05/20 15:03:46 INFO mapred.JobClient:   Map-Reduce Framework
11/05/20 15:03:46 INFO mapred.JobClient:     Reduce input groups=128510
11/05/20 15:03:46 INFO mapred.JobClient:     Map output materialized bytes=2914947
11/05/20 15:03:46 INFO mapred.JobClient:     Combine output records=201001
11/05/20 15:03:46 INFO mapred.JobClient:     Map input records=137146
11/05/20 15:03:46 INFO mapred.JobClient:     Reduce shuffle bytes=2914947
11/05/20 15:03:46 INFO mapred.JobClient:     Reduce output records=128510
11/05/20 15:03:46 INFO mapred.JobClient:     Spilled Records=507835
11/05/20 15:03:46 INFO mapred.JobClient:     Map output bytes=11435785
11/05/20 15:03:46 INFO mapred.JobClient:     Combine input records=1174986
11/05/20 15:03:46 INFO mapred.JobClient:     Map output records=1174986
11/05/20 15:03:46 INFO mapred.JobClient:     SPLIT_RAW_BYTES=784
11/05/20 15:03:46 INFO mapred.JobClient:     Reduce input records=201001
  

Я поискал проблему в Google, и люди в apache, похоже, предполагают, что это может быть что угодно, начиная с проблемы с сетью (или что-то связанное с файлами / etc / hosts) или может быть поврежденный диск на подчиненных узлах.

Просто добавлю: я вижу 2 «живых узла» на панели администратора namenode (localhost: 50070 / dfshealth) и в разделе Map / reduce Admin я также вижу 2 узла.

Есть какие-либо подсказки относительно того, как я могу избежать этих ошибок? Заранее спасибо.

Редактировать: 1:

Включен журнал tasktracker:http://pastebin.com/XMkNBJTh Включен журнал datanode:http://pastebin.com/ttjR7AYZ

Большое спасибо.

Комментарии:

1. Каковы точные трассировки стека? Пожалуйста, опубликуйте свои журналы задач.

2. Спасибо, Томас, за ваш ответ. Я вставил журналы, как указано выше.

3. datanode кажется нормальным, но у tasktracker серьезные проблемы. Вы проверили диск с помощью HDParm? У вас вообще есть проблемы с сетью?

4. Привет, Томас, спасибо за твой ответ. Могу я спросить, почему вы говорите, что у tasktracker серьезные проблемы? Нет, я не проверял диск с помощью HDParm. Похоже, у меня действительно есть некоторые проблемы с сетью, но я не могу точно определить, где возникают эти проблемы. Что также странно, так это то, что у меня ровно 3 сбоя выборки при всех запусках: что я нахожу странным.

5. Они всегда находятся на одном хосте? Если это так, вам следует проверить сетевой драйвер и ваш жесткий диск

Ответ №1:

Измените файл узла datanode/ etc /hosts.

Каждая строка разделена на три части. Первая часть — это сетевой IP-адрес, вторая часть — имя хоста или доменное имя, третья часть — псевдоним хоста, подробные шаги следующие:

  1. Сначала проверьте имя хоста:

    cat / proc / sys / kernel / hostname

    Вы увидите HOSTNAME атрибут. Измените значение IP-адреса, за которым стоит OK, а затем завершите работу.

  2. Используйте команду:

    hostname ***. ***. ***. ***

    Звездочка заменена на соответствующий IP.

  3. Аналогичным образом измените конфигурацию хостов следующим образом:

    127.0.0.1 localhost.localdomain localhost :: 1 localhost6.localdomain6 localhost6 10.200.187.77 10.200.187.77 hadoop-datanode

Если IP-адрес настроен и успешно изменен, или показать имя хоста, есть проблема, продолжайте изменять файл hosts.

Ответ №2:

Следующее решение определенно сработает

1. Удалите или прокомментируйте строку с Ip 127.0.0.1 и 127.0.1.1

2. используйте имя хоста, а не псевдоним, для ссылки на узел в файле хоста и файле Master / slave, присутствующем в каталоге hadoop

   -->in Host file 172.21.3.67 master-ubuntu

  -->in master/slave file master-ubuntu
  

3. смотрите NameSpaceId для namenode = NameSpaceId для Datanode

Ответ №3:

У меня была та же проблема: «Слишком много сбоев выборки» и очень низкая производительность Hadoop (простой пример wordcount занял более 20 минут для запуска на 2-узловом кластере мощных серверов). Я также получил «ПРЕДУПРЕЖДЕНИЕ mapred.JobClient: ошибка при чтении ошибок task outputConnection отказано».

Проблема была исправлена, когда я последовал инструкции Томаса Юнгблута: я удалил свой главный узел из файла конфигурации slaves. После этого ошибки исчезли, и пример wordcount занял всего 1 минуту.