#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-адрес, вторая часть — имя хоста или доменное имя, третья часть — псевдоним хоста, подробные шаги следующие:
-
Сначала проверьте имя хоста:
cat / proc / sys / kernel / hostname
Вы увидите
HOSTNAME
атрибут. Измените значение IP-адреса, за которым стоит OK, а затем завершите работу. -
Используйте команду:
hostname ***. ***. ***. ***
Звездочка заменена на соответствующий IP.
-
Аналогичным образом измените конфигурацию хостов следующим образом:
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 минуту.