Apache Hadoop
Распределенные вычисления и системы
  • формат pdf
  • размер 9,05 МБ
  • добавлен 01 августа 2016 г.
Miner D., Shook A. MapReduce Design Patterns: Building Effective Algorithms and Analytics for Hadoop and Other Systems
O’Reilly Media, 2013. — 233 p. — ISBN: 1449327176, 978-1449327170.
На англ. языке.
MapReduce — модель распределённых вычислений, представленная компанией Google, используемая для параллельных вычислений над очень большими (несколько петабайт) наборами данных в компьютерных кластерах. MapReduce — это фреймворк для вычисления некоторых наборов распределенных задач с использованием большого количества компьютеров (называемых «нодами»), образующих кластер.
Работа MapReduce состоит из двух шагов: Map и Reduce.
На Map-шаге происходит предварительная обработка входных данных. Для этого один из компьютеров (называемый главным узлом — master node) получает входные данные задачи, разделяет их на части и передает другим компьютерам (рабочим узлам — worker node) для предварительной обработки. Название данный шаг получил от одноименной функции высшего порядка.
На Reduce-шаге происходит свёртка предварительно обработанных данных. Главный узел получает ответы от рабочих узлов и на их основе формирует результат — решение задачи, которая изначально формулировалась.
Преимущество MapReduce заключается в том, что он позволяет распределенно производить операции предварительной обработки и свертки. Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно.
Канонический пример приложения, написанного с помощью MapReduce, — это процесс, подсчитывающий, сколько раз различные слова встречаются в наборе документов.
This book also provides a complete overview of MapReduce that explains its origins and implementations, and why design pattes are so important. All code examples are written for Hadoop.
Summarization pattes: get a top-level view by summarizing and grouping data.
Filtering pattes: view data subsets such as records generated from one user.
Data organization pattes: reorganize data to work with other systems, or to make MapReduce analysis easier.
Join pattes: analyze different datasets together to discover interesting relationships.
Metapattes: piece together several pattes to solve multi-stage problems, or to perform several analytics in the same job.
Input and output pattes: customize the way you use Hadoop to load or store data.