Hadoop YARN — производительность LocalJobRunner по сравнению с заданием, развернутым в кластере

Я делаю несколько тестов с заданиями M/R, работающими на 2 узлах кластера Hadoop 2.2.0. Одна вещь, которую я хотел бы понять, — это соображения производительности при запуске задания в локальном режиме (не управляемом ResourceManager) и его запуске в YARN. Тесты, которые я провел, показывают, что работа выполняется намного быстрее, когда задание выполняется через LocalJobRunner, чем когда оно управляется YARN. При настройке кластера я выполнял шаги, описанные здесь http://raseshmori.wordpress.com/2012/10/14/install-hadoop-nextgen-yarn-multi-node-cluster/ , возможно, есть какая-то конфигурация, которую руководство забыло упомянуть?

Спасибо!


person Seffy    schedule 12.06.2014    source источник


Ответы (2)


Вы бы запускали LocalJobRunner для тестов и небольших примеров. Вы бы использовали кластер, когда вам нужно обработать объемы данных, которые в первую очередь оправдывают использование Hadoop (он же «большие данные»).

Когда вы запускаете небольшой пример, накладные расходы на выполнение распределенных вещей перевешивают преимущества распараллеливания.

person Arnon Rotem-Gal-Oz    schedule 13.06.2014

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

person Bala    schedule 18.02.2015