Добавить Автора
источник:Облачное сообщество 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 для запуска и выполнения, для динамической обработки отправленных задач, сокращения времени параллельных вычислений и получения окончательных результатов вычислений.