Читаем Обработка больших данных полностью

В этой системе 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 выполняется параллельно на каждом сплите данных и, по сути, является пользовательской функцией, которая определяет, как именно будут обрабатываться данные. Эта функция применяет определенные операции к каждому элементу данных в сплите и генерирует одну или несколько пар ключ-значение в качестве результата. Ключом может быть любой идентификатор или характеристика данных, тогда как значение – это информация, связанная с этим ключом.

Рассмотрим пример анализа текстового файла. Допустим, задача состоит в том, чтобы подсчитать частоту встречаемости каждого слова в большом тексте. В этом случае функция Map может читать строки текста, разбивать их на отдельные слова и затем для каждого слова создавать пару ключ-значение, где ключ – это само слово, а значение – единица (представляющая одно упоминание слова). Например, если строка "Hadoop is powerful" обрабатывается функцией Map, она может вернуть пары (Hadoop, 1), (is, 1), (powerful, 1). Такие пары ключ-значение формируются для каждого слова в каждом сплите.

После того как функция Map завершает свою работу, результаты (все пары ключ-значение) сортируются и группируются по ключам. Этот процесс называется "сортировка и перегруппировка" (shuffle and sort). Сортировка упорядочивает данные по ключам, а перегруппировка объединяет все значения для одного ключа в список, что подготавливает данные к следующей стадии MapReduce – стадии Reduce. На этом этапе промежуточные результаты организованы так, чтобы данные с одинаковыми ключами были сгруппированы вместе, что позволяет значительно упростить дальнейшую обработку.

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

2. Функция Reduce:

Вторая стадия процесса MapReduce, называемая Reduce (сведение), отвечает за агрегирование и обработку данных, полученных от функции Map. Этот этап берет на себя задачу объединения результатов, которые были предварительно отсортированы и перегруппированы по ключам после выполнения стадии Map. Основная цель функции Reduce – консолидировать данные, связанные с одним и тем же ключом, чтобы получить окончательные результаты для каждой группы ключ-значение.

Перейти на страницу:

Похожие книги

Как справиться с компьютерной зависимостью
Как справиться с компьютерной зависимостью

Компьютер так прочно вошел в нашу жизнь, что большая половина человечества не может представить без него своего существования. Мы проводим за ним не только все рабочее, но и свободное время. Однако не каждый человек знает, что круглосуточное пребывание за монитором несет реальную угрозу как физическому (заболевания позвоночника, сердечно-сосудистой системы и т. д.), так и психическому здоровью (формирование психической зависимости от Интернета и компьютерных игр). С помощью данной книги вы сможете выявить у себя и своих близких признаки компьютерной зависимости, понять причины и механизмы ее возникновения и справиться с ней посредством новейших психологических методик и упражнений.

Виктория Сергеевна Тундалева , Елена Вячеславовна Быковская , М О Носатова , Н Р Казарян , Светлана Викторовна Краснова

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Все под контролем: Кто и как следит за тобой
Все под контролем: Кто и как следит за тобой

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

Симеон Гарфинкель

Публицистика / Прочая компьютерная литература / Документальное / Книги по IT
Компьютер в помощь астрологу
Компьютер в помощь астрологу

Книга поможет овладеть основами астрологии и научит пользоваться современными программами для астрологических расчетов. На понятном обычному человеку уровне дано объяснение принципов и идеологии астрологии «докомпьютерных» времен. Описана техника работы с программами, автоматизирующими сложные астрологические расчеты. Рассмотрены основные инструменты практикующего астролога: программы семейства Uranus для новичков, ZET 8 и Stalker — для специалистов, Almagest — для экспертов. Для всех этих программ дано развернутое описание интерфейса и приведены инструкции расчета гороскопов различного типа. Изложены методы интерпретации гороскопов с помощью компьютера. Все астрологические расчеты приведены в виде подробных пошаговых процедур, которые позволят даже начинающему получать астрологические результаты профессионального уровня. Прилагаемый компакт-диск содержит видеокурс по работе с популярными астропроцессорами.Для широкого круга пользователей.

А. Г. Жадаев , Александр Геннадьевич Жадаев

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT