Почему Hadoop медленен для простой привет работы - PullRequest
0 голосов
/ 02 марта 2019

Я следую инструкциям на веб-сайте hadoop: https://hadoop.apache.org/docs/r3.1.2/hadoop-project-dist/hadoop-common/SingleCluster.html. Я запускаю следующий пример в псевдораспределенном режиме.

time hadoop jar hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar grep input output 'dfs[a-z.]+'

Требуется 1: 47 мин.Когда я выключаю сеть (wifi), она заканчивается примерно через 50 секунд.

Когда я запускаю ту же команду в локальном (автономном) режиме, она заканчивается примерно через 5 секунд (на компьютере Mac).

Я понимаю, что в псевдораспределенном режиме задействовано больше накладных расходов, и, следовательно, это займет больше времени, но в этом случае это займет гораздо больше времени.Во время работы процессор полностью простаивает.

У вас есть идеи, что может вызвать эту проблему?

1 Ответ

0 голосов
/ 07 марта 2019

Во-первых, у меня нет объяснения, почему отключение вашей сети приведет к ускорению.Чтобы выяснить эту проблему, вам нужно будет просмотреть журналы Hadoop.

Это типичное поведение, с которым большинство людей сталкиваются при запуске Hadoop на одном узле.По сути, вы пытаетесь использовать FedEx, чтобы доставить что-то своему ближайшему соседу.Это всегда будет проходить быстрее, потому что это накладные расходы при работе с распределенной системой.Когда вы запускаете локальный режим, вы выполняете только функцию Map-Reduce.Когда вы запускаете псевдораспределение, он будет использовать все серверы Hadoop (NameNode, DataNodes для данных; Resource Manager, NodeManagers для вычислений), и вы увидите, что в этом задействованы задержки.

Когда вы отправляете своиработа, менеджер ресурсов должен планировать это.Поскольку ваш кластер не занят, он будет запрашивать ресурсы у Node Manager.Диспетчер узлов предоставит ему контейнер, в котором будет запускаться ваш Application Master.Как правило, этот цикл занимает около 10 секунд.Как только ваш AM будет запущен, он запросит ресурсы у менеджера ресурсов для задач Map и Reduce.Это займет еще 10 секунд.Кроме того, когда вы отправляете свою работу, примерно 3 секунды ждут, прежде чем эта работа будет фактически отправлена ​​менеджеру ресурсов.Пока что это 23 секунды, а вы еще не выполнили никаких вычислений.

После выполнения задания наиболее вероятной причиной ожидания является выделение памяти.В небольших системах (> 32 ГБ памяти) ОС может потребоваться некоторое время для выделения места.Если бы вы запускали то же самое на обычном аппаратном оборудовании для Hadoop (16+ ядро, 64+ ГБ), вы бы, вероятно, увидели время выполнения ближе к 25-30 секундам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...