Обработка больших данных. Джейд Картер

Обработка больших данных - Джейд Картер


Скачать книгу
Map сгенерировала все пары ключ-значение, система MapReduce автоматически сортирует и перегруппировывает их по ключам. На этом этапе все пары с одинаковыми ключами (например, все записи `/home.html`) собираются вместе и передаются на следующую стадию – Reduce. Например, если `/home.html` была посещена 10 раз, то все эти пары будут сгруппированы как:

      ```

      ("/home.html", [1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

      ```

      4. Стадия Reduce

      На этапе **Reduce** каждая группа пар ключ-значение передается функции Reduce, которая агрегирует значения. В данном случае функция Reduce суммирует все единицы в списке, чтобы получить общее количество посещений для каждой страницы.

      Для `/home.html` это будет выглядеть так:

      ```

      ("/home.html", 10)

      ```

      Функция Reduce выполняется параллельно на различных узлах, каждый из которых обрабатывает свою часть данных. Например, один узел может обрабатывать страницы, начинающиеся на `/home`, а другой – страницы, начинающиеся на `/product`.

      5. Результат

      После завершения стадии Reduce, результаты (в данном случае, количество посещений каждой страницы) сохраняются в выходной файл или базу данных. Например, конечный результат может выглядеть так:

      ```

      /home.html: 10

      /product.html: 5

      /cart.html: 2

      ```

      6. Обработка сбоев

      Предположим, что во время выполнения задачи один из узлов, обрабатывающий данные для страницы `/home.html`, выходит из строя. MapReduce автоматически обнаруживает это и перенаправляет задачу на другой узел. Этот узел заново выполняет функцию Map для своего сплита данных, а затем результаты снова передаются на стадию Reduce. В результате система завершает обработку данных без потерь, несмотря на сбой одного из узлов.

      Этот пример демонстрирует, как MapReduce использует модель "разделяй и властвуй" для обработки больших объемов данных параллельно на различных узлах. Разделяя задачу на более мелкие части, MapReduce обеспечивает высокую производительность и устойчивость к сбоям, что делает его мощным инструментом для анализа больших данных, таких как логи веб-сервера.

Синергия HDFS и MapReduce

      Hadoop, как платформа для работы с большими данными, объединяет две ключевые технологии: HDFS (Hadoop Distributed File System) и MapReduce. Эти компоненты работают в тесной связке, обеспечивая как надежное хранение данных, так и их эффективную обработку. В совокупности они создают мощный и масштабируемый инструмент, который позволяет организациям обрабатывать огромные объемы данных, удовлетворяя различные потребности, от простой аналитики до сложных вычислений в области машинного обучения.

      HDFS: Надежное и Масштабируемое Хранилище Данных

      HDFS является распределенной файловой системой, специально разработанной для хранения очень больших файлов, обеспечивая при этом надежность и отказоустойчивость. Основное преимущество HDFS заключается в том, что она разбивает данные на большие блоки, которые распределяются между множеством узлов в кластере. Каждый блок данных реплицируется на нескольких узлах, что гарантирует, что данные остаются доступными даже в случае сбоя одного или нескольких узлов. Это делает HDFS особенно подходящей для среды, где сбои аппаратного обеспечения неизбежны, но необходимо поддерживать


Скачать книгу