Внутреннее устройство потока данных Mapreduce

Я пытался понять анатомию уменьшения карты из разных книг/блогов. Но я не получаю четкого представления.

Что происходит, когда я отправляю задание в кластер с помощью этой команды:

..Загрузил файлы уже в hdfs

bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output

Может ли кто-нибудь объяснить последовательность операций, происходящих прямо с клиента и внутри кластера?


person data_set    schedule 31.05.2013    source источник
comment
hadooptrainer.wordpress.com/2013/04 /25/ и hadooptrainer.wordpress .com/2013/04/25/   -  person Tejas Patil    schedule 31.05.2013


Ответы (2)


Процессы идут так:

1- Клиент настраивает и устанавливает задание через Job и отправляет его в JobTracker.

2- После отправки задания JobTracker присваивает этому заданию идентификатор задания.

3- Затем проверяется выходная спецификация задания. Например, если выходной каталог не указан или уже существует, задание не отправляется и в программу MapReduce выдается ошибка.

4- Как только это будет сделано, InputSplits для задания будут созданы (на основе используемого вами InputFormat). Если расщепления не могут быть вычислены, например, из-за того, что входные пути не существуют, задание не отправляется и в программу MapReduce выдается ошибка.

5- В зависимости от количества InputSplits создаются задачи карты, и каждый InputSplits обрабатывается одной задачей карты.

6- Затем ресурсы, необходимые для запуска задания, копируются в кластере, например, JAR-файл задания, файл конфигурации и т. д. JAR-файл задания копируется с высоким коэффициентом репликации (по умолчанию 10), так что существует много копий в кластере, к которым могут обращаться средства отслеживания задач при выполнении задач для задания.

7- Затем, в зависимости от местоположения блоков данных, которые будут обрабатываться, JobTracker направляет TaskTrackers для запуска задач карты на том же самом узле данных, где присутствует этот конкретный блок данных. Если на этом DataNode нет свободных слотов ЦП, данные перемещаются на соседний DataNode со свободными слотами, и процессы продолжаются без ожидания.

8- После того, как фаза карты начинается, отдельные записи (пары ключ-значение) из каждого InputSplit начинают обрабатываться Mapper одна за другой, завершая весь InputSplit.

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

Ниже представлено графическое представление всего процесса: введите здесь описание изображения

Кроме того, я бы посоветовал вам перейти по этой ссылке.

ХТН

person Tariq    schedule 31.05.2013
comment
1 - что за работа? и не могли бы вы рассказать о процессе настройки? - person data_set; 31.05.2013
comment
Это класс, который присутствует внутри org.apache.hadoop.mapreduce. Это позволяет нам настраивать задание, отправлять его, контролировать его выполнение и запрашивать состояние. Методы set работают только до тех пор, пока задание не будет отправлено, после чего они вызовут исключение IllegalStateException. Не могли бы вы сказать мне, что именно вы хотите знать? Это поможет объяснить это лучше? - person Tariq; 31.05.2013
comment
Tariq Я хотел бы получить картину всего потока. - person data_set; 31.05.2013

Прочитайте главу 6 («Как работает MapReduce») в «Hadoop: Полное руководство". Объясняет на хорошем языке. Для быстрого чтения см. эту и это.

person Tejas Patil    schedule 31.05.2013
comment
Tejas - ссылки, которые вы упомянули в посте, похоже, требуют приглашения для их чтения. - person saurav; 02.08.2014