Оглавление:
Определение - Что означает MapReduce?
MapReduce - это модель программирования, представленная Google для обработки и создания больших наборов данных на кластерах компьютеров.
Google сначала разработал структуру для обслуживания индексации веб-страниц Google, и новая структура заменила более ранние алгоритмы индексации. Начинающие разработчики считают, что инфраструктура MapReduce полезна, потому что библиотечные процедуры могут использоваться для создания параллельных программ, не беспокоясь об обмене данными внутри кластера, мониторинге задач или обработке ошибок.
MapReduce работает на большом кластере обычных компьютеров и обладает высокой масштабируемостью. Он имеет несколько форм реализации, предоставляемых несколькими языками программирования, такими как Java, C # и C ++.
Техопедия объясняет MapReduce
Каркас MapReduce состоит из двух частей:
- Функция под названием «Карта», которая позволяет различным точкам распределенного кластера распределять свою работу
- Функция под названием «Уменьшить», предназначенная для уменьшения окончательной формы результатов кластеров в один вывод
Основным преимуществом инфраструктуры MapReduce является ее отказоустойчивость, когда по завершении работы ожидаются периодические отчеты от каждого узла в кластере.
Задача переносится с одного узла на другой. Если главный узел замечает, что узел молчит в течение более длительного интервала, чем ожидалось, главный узел выполняет процесс переназначения для замороженной / отложенной задачи.
Инфраструктура MapReduce основана на функциях Map и Reduce, используемых в функциональном программировании. Вычислительная обработка выполняется для данных, хранящихся в файловой системе или в базе данных, которая принимает набор значений входных ключей и создает набор значений выходных ключей.
Каждый день многочисленные программы MapReduce и задания MapReduce выполняются в кластерах Google. Программы автоматически распараллеливаются и выполняются на большом кластере обычных машин Система времени выполнения имеет дело с разделением входных данных, планированием выполнения программы на множестве машин, обработкой сбоев машин и управлением необходимой межмашинной связью. Программисты, не имеющие опыта работы с параллельными и распределенными системами, могут легко использовать ресурсы большой распределенной системы.
MapReduce используется в распределенном grep, распределенной сортировке, обращении графов веб-ссылок, статистике журналов веб-доступа, кластеризации документов, машинном обучении и статистическом машинном переводе.
