Добавить Автора
источник:Облачное сообщество Hang Seng LIGHT
Базовые концепты
MapReduceЭто среда программирования для распределенных вычислительных программ, с помощью которой пользователи могут отправлять готовые программы,работать одновременновHadoopна кластере.
Основная функция MapReduce заключается в интеграции кода бизнес-логики, написанного пользователем, и встроенных компонентов по умолчанию в законченную программу распределенных вычислений.
MapReduce — это модель программирования, состоящая из двух этапов: Map и Reduce. Входные данные сначала делятся на куски, затем обрабатываются Map и, наконец, выводятся в Reduce.
Его можно понимать как процесс сортировки и суммирования данных.
основной алгоритм
План алгоритма для MapReduce обычно состоит из трех шагов:
-
Map: Работа карты или картографа заключается в обработке входных данных. Каждый рабочий узел будетmapФункция применяется к локальным данным и записывает вывод во временное хранилище. -
Shuffle: рабочие узлы перераспределяют данные в соответствии с выходным ключом, сортируют, группируют и копируют сопоставление данных, чтобы все данные, принадлежащие ключу, находились на одном рабочем узле. -
Reduce: рабочие узлы теперь обрабатывают каждый набор выходных данных для каждого ключа параллельно и сохраняют полученные данные в HDFS.
запустить процесс
MapReduce обычно состоит из следующих шагов:
- input: прочитать текстовый файл в системе;
-
splitting: Разделите файл построчно, вы можете получить
K1ряды,V1Указывает текстовое содержимое соответствующей строки; -
mapping: Разделите каждую строку пробелами параллельно и получите
List(K2,V2),вK2экспресс ключевые слова,V2Значение равно 1, что соответствует 1 вхождению; -
shuffling:так как
mappingОперации могут выполняться параллельно на разных машинах, необходимо пройтиshufflingоперация будет такой жеkeyДанные значения распределяются на тот же узел и объединяются, чтобы можно было подсчитать окончательный результат.В это время мы получаемK2первичный ключ,List(V2)является итерируемой коллекцией,V2Это V2 в картографировании; -
Reducing: для каждого рабочего узла
K2пара ключ-значениеReduce()операция, конечный результат.
В модели программирования MapReduce
splittingиshuffingВсе операции реализуются фреймворком, и только то, что нам нужно запрограммировать для реализацииmappingиreducing, откуда и произошло название MapReduce.
Преимущества и недостатки
преимущество
- Он может разделять крупномасштабные данные на несколько узлов для параллельных вычислений, сокращая время, необходимое для вычисления данных;
- Переместите вычисления в местонахождение данных, чтобы снизить затраты на сеть;
недостаток
- Могут выполняться только офлайн-вычисления, потоковые вычисления и вычисления в реальном времени выполняться не могут;
- Результаты процесса будут сохранены на диск, что увеличит нагрузку на ввод-вывод;
Суммировать
Суть MapReduce заключается в отправке программ, разработанных пользователями, в Hadoop для запуска и выполнения, для динамической обработки отправленных задач, сокращения времени параллельных вычислений и получения окончательных результатов вычислений.