9. Параллельные и распределенные вычисления MapReduce 2
MapReduce — модель распределённых вычислений, разработанная компанией Google, предназначенная для параллельных вычислений над большими наборами данных (Big Data) в компьютерных кластерах. Цель — упростить обработку данных, распределённых по нескольким компьютерам или узлам, и обеспечить высокую масштабируемость. Модель включает два ключевых шага: Map (предварительная обработка) и Reduce (свёртка). Принцип работы Map — входные данные разбиваются на части, каждая часть обрабатывается функцией Map, которая генерирует промежуточные пары «ключ-значение». Каждая функция Map работает независимо и параллельно с другими, обрабатывая свою часть входной информации. Reduce — данные, сгруппированные по ключу, преобразуются в набор выходных значений. Функция Reduce принимает ключ и множество значений, сопоставленных этому ключу, и выдаёт набор выходных значений (обычно одно значение для каждого уникального ключа). Особенности: Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно (хотя на практике это ограничено источником входных данных и/или количеством используемых процессоров). Множество рабочих узлов может осуществлять свёртку — для этого необходимо, чтобы все результаты предварительной обработки с одним конкретным значением ключа обрабатывались одним рабочим узлом в один момент времени. Компоненты Кроме Map и Reduce, в MapReduce есть ещё несколько компонентов: Input — читает входные данные из источника, такого как файловая система Hadoop HDFS или база данных. Output — записывает итоговые результаты обработки данных в выходной источник. Shuffle and Sort — перемещает и сортирует промежуточные данные перед передачей их в компонент Reduce, гарантирует, что все записи с одинаковым ключом будут переданы на один и тот же компьютер для выполнения операций Reduce. Реализация MapReduce лег в основу Apache Hadoop — одной из популярных платформ для обработки больших данных. Также модель используется в других фреймворках, например: Apache Spark — система распределённых вычислений, которая интегрируется поверх Hadoop, но отличается подходом: промежуточные результаты хранятся в памяти, минимизируя операции ввода-вывода. Области применения MapReduce используется в различных областях, где требуется обработка и анализ больших данных. Например: Поисковые системы — для индексации веб-страниц: функция Map извлекает слова из документов и сопоставляет их с идентификаторами документов, а функция Reduce собирает все идентификаторы документов, связанные с каждым словом. Обработка изображений и видео — функция Map может обрабатывать отдельные изображения или фрагменты видео, выполняя такие операции, как распознавание образов, а функция Reduce — суммировать результаты или искать совпадения. Анализ социальных сетей — функция Map может обрабатывать отдельные узлы социального графа (пользователей), а функция Reduce — агрегировать информацию о взаимодействии между пользователями.
MapReduce — модель распределённых вычислений, разработанная компанией Google, предназначенная для параллельных вычислений над большими наборами данных (Big Data) в компьютерных кластерах. Цель — упростить обработку данных, распределённых по нескольким компьютерам или узлам, и обеспечить высокую масштабируемость. Модель включает два ключевых шага: Map (предварительная обработка) и Reduce (свёртка). Принцип работы Map — входные данные разбиваются на части, каждая часть обрабатывается функцией Map, которая генерирует промежуточные пары «ключ-значение». Каждая функция Map работает независимо и параллельно с другими, обрабатывая свою часть входной информации. Reduce — данные, сгруппированные по ключу, преобразуются в набор выходных значений. Функция Reduce принимает ключ и множество значений, сопоставленных этому ключу, и выдаёт набор выходных значений (обычно одно значение для каждого уникального ключа). Особенности: Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно (хотя на практике это ограничено источником входных данных и/или количеством используемых процессоров). Множество рабочих узлов может осуществлять свёртку — для этого необходимо, чтобы все результаты предварительной обработки с одним конкретным значением ключа обрабатывались одним рабочим узлом в один момент времени. Компоненты Кроме Map и Reduce, в MapReduce есть ещё несколько компонентов: Input — читает входные данные из источника, такого как файловая система Hadoop HDFS или база данных. Output — записывает итоговые результаты обработки данных в выходной источник. Shuffle and Sort — перемещает и сортирует промежуточные данные перед передачей их в компонент Reduce, гарантирует, что все записи с одинаковым ключом будут переданы на один и тот же компьютер для выполнения операций Reduce. Реализация MapReduce лег в основу Apache Hadoop — одной из популярных платформ для обработки больших данных. Также модель используется в других фреймворках, например: Apache Spark — система распределённых вычислений, которая интегрируется поверх Hadoop, но отличается подходом: промежуточные результаты хранятся в памяти, минимизируя операции ввода-вывода. Области применения MapReduce используется в различных областях, где требуется обработка и анализ больших данных. Например: Поисковые системы — для индексации веб-страниц: функция Map извлекает слова из документов и сопоставляет их с идентификаторами документов, а функция Reduce собирает все идентификаторы документов, связанные с каждым словом. Обработка изображений и видео — функция Map может обрабатывать отдельные изображения или фрагменты видео, выполняя такие операции, как распознавание образов, а функция Reduce — суммировать результаты или искать совпадения. Анализ социальных сетей — функция Map может обрабатывать отдельные узлы социального графа (пользователей), а функция Reduce — агрегировать информацию о взаимодействии между пользователями.
