Являются ли эти настройки Hadoop разумными? - PullRequest
0 голосов
/ 20 января 2011

Я настроил и тестирую псевдораспределенный кластер Hadoop (с namenode, системой отслеживания заданий и системой отслеживания задач / узлом данных на одной машине). Коробка, на которой я работаю, имеет около 4 гигабайт памяти, 2 процессора, 32-битную и работает под управлением Red Hat Linux.

Я запустил примеры программ grep из учебников с различными размерами и количеством файлов. Я обнаружил, что grep занимает около 45 секунд для файла объемом 1 МБ, 60 секунд для файла объемом 100 МБ и около 2 минут для файла объемом 1 ГБ.

Я также создал свою собственную программу Map Reduce, которая полностью исключает всю логику; функции карты и уменьшения пусты. Запуск этого примера программы занял 25 секунд.

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

Я знаю, что это время будет сильно различаться в зависимости от моего оборудования, конфигурации, входов и т. Д., Но я просто хотел знать, может ли кто-нибудь сообщить мне, следует ли ожидать этого времени или, если я проведу серьезную настройку и настройку, я может значительно сократить его (например, grep занимает всего <5 секунд). </p>

Ответы [ 2 ]

1 голос
/ 20 января 2011

Несколько соображений:

  • Для каждого запуска задания Hadoop всегда есть фиксированные затраты времени для вычисления разбиений и запуска JVM на каждом узле для запуска карты и сокращения заданий.
  • Вы не ощутите никакого реального ускорения по сравнению с UNIX grep, если не начнете работать на нескольких узлах с большим количеством данных.С файлами 100 Мб-1G, большая часть времени будет потрачена на настройку заданий, а не на фактическую работу.Если вы не предполагаете иметь дело с данными, превышающими один или два концерта, вероятно, не стоит использовать Hadoop.
1 голос
/ 20 января 2011

Таким образом, у вас есть только 2 процессора, Hadoop создаст (в псевдораспределенном режиме) много JVM ': одна для Namenode, 1 для Datanode, 1 для Tasktracker и 1 для Jobtracker. Для каждого файла в вашем рабочем пути Hadoop устанавливает задачу сопоставления, и для каждой задачи он также создает новую JVM. Так что ваши два ядра делятся 4-н приложениями. Так что ваши времена не являются необычными ...

По крайней мере, Hadoop не будет таким быстрым для простых текстовых файлов, как для файлов последовательностей. Чтобы получить НАСТОЯЩЕЕ ускорение, вы должны перенести текст в сериализованный байт-код и позволить потоку hadoop переместиться через него.

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