Можно ли отображать и сокращать задания на разных машинах?

Я работаю или очень отличное решение по вычислительной разгрузке, я могу сделать это очень хорошо с помощью пользовательского программирования на c ++ / java, но я ищу то же самое, что можно сделать в hadoop или любой другой структуре? Я много искал, но ничего достойного не нашел об этом.

Как мы знаем, обычное задание hadoop, выполняемое с помощью этапов Map и Reduce, когда оба выполняются на машине с почти одинаковой мощностью, для фазы карты нам не требуется питание, и это может быть выгружен на дешевое обычное оборудование, такое как RaspberryPI, в то время как сокращение должно работать на мощной машине.

так можно ли изолировать эти 2 фазы и сделать их осведомленными о машинах?


person Amey Jadiye    schedule 15.10.2015    source источник
comment
Я не уверен, можно ли настроить hadoop для запуска карты / уменьшения на разных хостах всегда, но подумайте о локальности данных, которая является основным драйвером для запуска обоих этапов на одном хосте.   -  person Iłya Bursov    schedule 15.10.2015
comment
Локальность данных также виртуальна в современном мире, вам не кажется? Считаете, что я смонтировал на RPi большой жесткий диск емкостью 1 ТБ? вполне возможно.   -  person Amey Jadiye    schedule 16.10.2015
comment
Локальность данных является основной функцией hadoop, каждое задание map / reduce работает с небольшими фрагментами данных, и лучше иметь их в локальном разделе hdfs   -  person Iłya Bursov    schedule 16.10.2015
comment
что я имею в виду, в наши дни локальные данные также виртуализированы и монтируются как nfs. так что я могу прикрепить большой жесткий диск к маленькому RPi и выполнить на нем работу с картой.   -  person Amey Jadiye    schedule 16.10.2015


Ответы (2)


На каждом узле вы можете создать файл mapred-site.xml, чтобы переопределить любые настройки по умолчанию. Эти настройки будут применяться только к этому узлу (средство отслеживания задач).

Затем для каждого узла можно указать значения для

  1. mapreduce.tasktracker.reduce.tasks.maximum
  2. mapreduce.tasktracker.map.tasks.maximum

На узлах, где вы хотите запускать только задачи сокращения, установите максимальное количество задач карты равным 0 и наоборот.

Вот список параметры конфигурации

person Gerhard    schedule 15.10.2015

Задания редуктора могут выполняться на разных узлах, но в чем преимущество выполнения задания редуктора на мощной машине?

Вы можете использовать одну и ту же стандартную конфигурацию оборудования для узлов Map и Reduce.

Тонкая настройка работы с уменьшением карты - более сложная часть, в зависимости от

1) Ваш размер ввода

2) Время, затраченное картографом на выполнение задания карты.

3) Установка количества заданий Map & Reducer

и т.п.

Помимо изменений конфигурации, предложенных Герхардом, ознакомьтесь с некоторыми советами по тонкой настройке производительности Работа

Советы по настройке количества карт и соответствующему сокращению задач

Диагностика / симптомы:

1) Каждая задача map или reduce завершается менее чем за 30-40 секунд.

2) Большое задание не использует все доступные слоты в кластере.

3) После того, как большинство сопоставителей или редукторов запланированы, один или два остаются отложенными, а затем запускаются полностью самостоятельно.

Настройка количества карт и сокращение задач для задания важны. Несколько советов.

1) Если каждая задача занимает менее 30-40 секунд, уменьшите количество задач.

2) Если задание имеет более 1 ТБ входных данных, рассмотрите возможность увеличения размера блока входного набора данных до 256 МБ или даже 512 МБ, чтобы количество задач было меньше.

3) Пока каждая задача выполняется в течение как минимум 30-40 секунд, увеличьте количество задач сопоставления до некоторого числа, кратного количеству слотов сопоставителя в кластере.

4) Не планируйте слишком много сокращенных задач - для большинства задач. Количество задач сокращения должно быть равно или немного меньше количества слотов сокращения в кластере.

Если вы по-прежнему хотите иметь другую конфигурацию, взгляните на этот вопрос и ссылка вики

РЕДАКТИРОВАТЬ:

Настройте mapred.map.tasks в 1.x (или mapreduce.job.maps в версии 2.x) и mapred.reduce.tasks в 1.x (или mapreduce.job.reduces в версии 2.x) соответственно в ваших узлах в зависимости от конфигурации оборудования. Настройте больше редукторов на лучших аппаратных узлах. Но перед настройкой этих параметров убедитесь, что вы позаботились о размере ВХОДА, времени обработки карты и т. Д.

person Ravindra babu    schedule 16.10.2015
comment
как сказано в вопросе, заданиям карты не требуется много энергии, в то время как для сокращения требуется гораздо больше мощности процессора. Вопрос заключается в том, как мы можем снизить стоимость кластера, разгрузив простую задачу на дешевое оборудование, понятно? - person Amey Jadiye; 16.10.2015
comment
Настройте mapred.map.tasks и mapred.reduce.tasks соответственно на узлах виртуальной машины в зависимости от конфигурации оборудования. Настройте больше редукторов на лучших аппаратных узлах. - person Ravindra babu; 16.10.2015
comment
Настройте mapred.map.tasks в 1.x (или mapreduce.job.maps в версии 2.x) и mapred.reduce.tasks в 1.x (или mapreduce.job.reduces в версии 2.x) соответственно в ваших узлах в зависимости от конфигурации оборудования - person Ravindra babu; 16.10.2015