Сводка

Завершено
  • MapReduce — это платформа параллельной обработки для приложений с большими данными в больших кластерах. Hadoop — это реализация MapReduce с открытым кодом.
  • В программах MapReduce обычно есть этап отображения и этап свертки. MapReduce также использует базовую распределенную файловую систему. В Hadoop это HDFS.
  • На этапе отображения входные данные делятся на фрагменты и обрабатываются независимо задачами map. Выходные данные задач map сортируются и перетасовываются в секции, которые копируются в задачи reduce. Задачи reduce обрабатывают секции и создают окончательный результат.
  • Данные в MapReduce всегда форматируются в виде набора пар "ключ-значение". Ключи в MapReduce используются для перетасовывания данных между этапами отображения и свертки.
  • В качестве примеров программ MapReduce, обсуждаемых в этом модуле, можно назвать WordCount, Sort и обнаружение края Sobel.
  • Кластер MapReduce состоит из JobTracker (главный узел) и TaskTracker (подчиненные узлы).
  • JobTracker назначают задачи для TaskTracker с помощью стратегии извлечения. JobTracker отслеживают TaskTracker и их ход выполнения задач с помощью пакетов пульса.
  • Hadoop поддерживает несколько планировщиков заданий, включая FIFO, Fair, Capacity и другие.
  • Планировщик FIFO используется по умолчанию и выполняет задания в том порядке, в котором они поступают в кластер. Он не учитывает приоритет или размер задания, а небольшое задание, которое может выполниться за несколько минут, должно ожидать завершения долго выполняющегося задания, стоящего в очереди впереди.
  • Fair Scheduler допускает совместное использование ресурсов кластера несколькими заданиями, что позволяет всем заданиям получать равные доли слотов кластера с течением времени.
  • Capacity Scheduler — это более сложная версия Fair Scheduler, создающая несколько очередей заданий и планирующая задания на основе приоритета.
  • Задачи map в Hadoop выполняются на узлах, находящихся ближе всего к фрагменту, который необходимо обработать. Задачи reduce, между тем, обрабатываются на любом узле по умолчанию без учета расположения.
  • Избыточность данных в Hadoop обеспечивается с помощью HDFS посредством репликации блоков.
  • Устойчивость задач в Hadoop обеспечивается с помощью спекулятивного выполнения, при котором JobTracker непрерывно отслеживает ход выполнения задач, а медленные или остановившиеся задачи выполняются повторно на другом узле в качестве спекулятивных.
  • Hadoop 2.0 предлагает новый диспетчер ресурсов под названием YARN, который содержит несколько улучшений по сравнению с MapReduce 1.0.