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

Автор: Джейд Картер
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 2024
isbn:
Скачать книгу
необходимо хранить и анализировать для выявления закономерностей и улучшения пользовательского опыта. Для этого они используют HDFS, который распределяет данные по множеству серверов в кластере.

      В этой системе NameNode управляет метаданными всех логов. Например, он знает, что файл `weblogs_2024-09-01.log` состоит из 10 блоков данных, и может указать, что блоки 1, 3, и 5 находятся на DataNode A, блоки 2 и 4 – на DataNode B, а остальные блоки – на DataNode C. Когда аналитик или приложение хочет получить доступ к этим логам, запрос сначала направляется на NameNode, который предоставляет информацию о расположении блоков. Аналитик затем обращается напрямую к соответствующим DataNode для извлечения нужных данных.

      Поскольку логи представляют собой большие файлы, HDFS разбивает их на блоки и хранит копии (реплики) этих блоков на разных DataNode для повышения надежности. Если один из узлов (например, DataNode B) выходит из строя, NameNode автоматически инициирует копирование недостающих блоков с DataNode A и C на другие доступные узлы, чтобы обеспечить целостность данных. Это позволяет системе продолжать работу даже при сбое одного или нескольких узлов.

      Таким образом, в этом примере HDFS помогает компании эффективно управлять огромными объемами данных, обеспечивая высокую доступность и надежность системы, даже при наличии сбоев в отдельных узлах.

      MapReduce

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

      1. Функция Map:

      Функция Map является первой и ключевой стадией в процессе обработки данных в парадигме MapReduce, используемой в таких системах, как Hadoop. Эта стадия играет важную роль в разделении и параллельной обработке больших объемов данных, что делает систему масштабируемой и эффективной для обработки задач на кластере.

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

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

      Рассмотрим