Как увеличить количество картографов и редукторов в Hadoop в зависимости от количества экземпляров, используемых для повышения производительности?

Если я увеличу количество картографов и уменьшу количество редукторов, будет ли разница в производительности (увеличение/уменьшение) любого задания во время выполнения?

Также я хочу спросить, что Как установить количество мапперов и редукторов? Я никогда не играл с этой настройкой, поэтому я не знаю об этом. Я знаю Hadoop, но у меня есть код с ним, так как я часто использую Hive.

Также, если я хочу увеличить количество картографов и редукторов, то как это установить и до какого значения я его устанавливаю. Зависит ли это от количества экземпляров (скажем, 10)?

Пожалуйста, ответьте мне, я хочу попробовать это и проверить производительность. Спасибо.


person Bhavesh Shah    schedule 04.05.2012    source источник


Ответы (4)


Изменение количества мапперов - это чистая оптимизация, которая не должна влиять на результат. Вы должны установить номер, чтобы полностью использовать свой кластер (если он выделен). Попробуйте количество картографов на узел, равное количеству ядер. Посмотрите на загрузку ЦП и увеличивайте число, пока не получите почти полную загрузку ЦП или система не начнет подкачку. Может случиться так, что вам нужно меньше преобразователей, чем ядер, если у вас недостаточно памяти.
Количество преобразователей влияет на результаты, поэтому, если вам нужно определенное число преобразователей (например, 1) - установите его
Если вы можете обрабатывать результаты любого количества редюсеров - проделайте такую ​​же оптимизацию, как и с Mappers.
Теоретически вы можете привязаться к вводу-выводу во время этого процесса настройки - обратите внимание на это также при настройке количества задач. Вы можете распознать его по низкой загрузке ЦП, несмотря на увеличение количества мапперов/редюсеров.

person David Gruzman    schedule 06.05.2012
comment
Спасибо Дэвид за ваш ответ. Но я хочу знать, как установить маппер и редьюсер (какая команда для его установки?). - person Bhavesh Shah; 07.05.2012
comment
Самый простой способ - установить следующие свойства: mapred.tasktracker.map.tasks.maximum и mapred.tasktracker.reduce.tasks.maximum в файле Mapred-site.xml. - person David Gruzman; 07.05.2012

Вы можете увеличить количество картографов в зависимости от размера блока и размера разделения. Один из самых простых способов — уменьшить размер разделения, как показано ниже:

Configuration conf= new Cofiguration();
//set the value that increases your number of splits.
conf.set("mapred.max.split.size", "1020");
Job job = new Job(conf, "My job name");
person Animesh Raj Jha    schedule 16.07.2012

Я попробовал предложение @Animesh Raj Jha, изменив mapred.max.split.size, и получил заметное увеличение производительности.

person CruncherBigData    schedule 07.06.2013

я использую hadoop 2.2 и не знаю, как установить максимальный размер разделения ввода. Я хотел бы уменьшить это значение, чтобы создать больше картографов, я попытался обновить yarn-site.xml, но это не работает

действительно, hadoop 2.2 /yarn не принимает ни одного из следующих параметров

<property>
<name>mapreduce.input.fileinputformat.split.minsize</name>
<value>1</value>
</property>
<property>
<name>mapreduce.input.fileinputformat.split.maxsiz e</name>
<value>16777216</value>
</property>

<property>
<name>mapred.min.split.size</name>
<value>1</value>
</property>
<property>
<name>mapred.max.split.size</name>
<value>16777216</value>
</property>

Лучший

person user3463967    schedule 29.04.2014