Введение в компоненты Hadoop

Компоненты Hadoop - это в основном HDFS, Map Reduce, Yarn. Сегодня мы живем в эпоху цифровых технологий, когда скорость производства данных очень высока, приблизительно, мы производим 2, 5 квинтиллиона данных в день. Хотя емкость хранения дисков увеличивается, но скорость поиска для этого объема данных не увеличилась. Чтобы преодолеть это, нам нужно читать данные параллельно, чтобы достичь этого в Hadoop, у нас есть HDFS (распределенная файловая система Hadoop), где наборы данных хранятся в виде блоков в HDFS (более подробную информацию см. В разделе HDFS) для параллельного чтения данных и достижения более высокая скорость обработки. Обработка данных выполняется для получения или прогнозирования какой-либо значимой информации или для получения некоторых тенденций или моделей. Процесс MapReduce используется для получения нужной информации. Map и Reduce - это две разные фазы обработки данных.

Основные компоненты Hadoop

Основные компоненты Hadoop описаны ниже:

1. Распределенная файловая система Hadoop (HDFS)

HDFS - это слой хранения больших данных, это кластер из множества машин, хранимые данные можно использовать для обработки с использованием Hadoop. Как только данные передаются в HDFS, мы можем обрабатывать их в любое время, пока время обработки данных не будет находиться в HDFS, пока мы не удалим файлы вручную. HDFS хранит данные в виде блока, минимальный размер блока составляет 128 МБ в Hadoop 2.x, а для 1.x - 64 МБ. HDFS реплицирует блоки для доступных данных, если данные хранятся на одном компьютере, и если на компьютере происходит сбой, данные не теряются, но во избежание этого данные реплицируются на разные компьютеры. Коэффициент репликации по умолчанию равен 3, и мы можем изменить его в HDFS-site.xml или с помощью команды Hadoop fs -strep -w 3 / dir, реплицируя имеющиеся у нас блоки на разных компьютерах для обеспечения высокой доступности.
HDFS - это архитектура «ведущий-ведомый», это «NameNode» в качестве главного и «Data Node» в качестве ведомого. NameNode - это машина, на которой хранятся все метаданные всех блоков, хранящихся в DataNode.

2. пряжа

YARN был представлен в Hadoop 2.x, до этого у Hadoop был JobTracker для управления ресурсами. Job Tracker был хозяином, а в качестве раба был трекер задач. Job Tracker был тем, кто раньше заботился о планировании работы и распределении ресурсов. Task Tracker использовался для того, чтобы заботиться о задачах Map и Reduce, и статус периодически обновлялся до Job Tracker. Это тип диспетчера ресурсов, у которого был предел масштабируемости, и одновременное выполнение задач также имело ограничение. Эти проблемы были решены в YARN, и он позаботился о распределении ресурсов и планировании заданий в кластере. Для выполнения задания Map Reduce требуются ресурсы в кластере, чтобы получить ресурсы, выделенные для задания, помогает YARN. YARN определяет, какая работа выполнена и на какой машине она выполнена. Он имеет всю информацию о доступных ядрах и памяти в кластере, он отслеживает потребление памяти в кластере. Он взаимодействует с NameNode о данных, в которых он находится, для принятия решения о распределении ресурсов.

3. MapReduce

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

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

1. Картограф

Mapper - это класс, в котором входной файл преобразуется в пару ключей и значений для дальнейшей обработки. При чтении данных они считываются в значениях ключа только тогда, когда ключ - это битовое смещение, а значение - вся запись.

Например, у нас есть файл Diary.txt, в котором записаны две строки, т.е. две записи.

Это замечательный день, который мы должны здесь насладиться, смещение для 't' равно 0, а для 'w' это 33 (пробелы также рассматриваются как символ), поэтому маппер будет считывать данные как пару ключ-значение, as (ключ, значение), (0, это замечательный день), (33, мы должны наслаждаться)

2. Редуктор

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

3. Водитель

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

пример

Предположим, у нас есть набор данных туристического агентства, теперь нам нужно рассчитать на основе данных, сколько людей выбирают поездки в конкретный пункт назначения. Чтобы достичь этого, нам нужно будет взять пункт назначения в качестве ключа, а для подсчета мы примем значение равным 1. Таким образом, на этапе отображения мы будем отображать пункт назначения на значение 1. Теперь на этапе перемешивания и сортировки после преобразователя, он отобразит все значения на определенный ключ. Например, если у нас есть пункт назначения в качестве MAA, мы отобразили 1 и у нас есть 2 вхождения после перемешивания и сортировки, мы получим MAA, (1, 1) где (1, 1) - значение. Теперь на этапе редуктора у нас уже есть логика, реализованная на этапе редуктора для добавления значений, чтобы получить общее количество билетов, забронированных для пункта назначения. Это поток MapReduce.

Ниже приведен скриншот реализованной программы для приведенного выше примера.

1. Класс водителя

2. Класс Mapper

3. Класс редуктора

Выполнение Hadoop

Для выполнения Hadoop нам сначала нужно собрать jar, а затем выполнить его с помощью следующей команды: Hadoop jar eample.jar /input.txt /output.txt

Вывод

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

Рекомендуемые статьи

Это было руководство по компонентам Hadoop. Здесь мы обсудили основные компоненты Hadoop с примерами. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Введение в архитектуру JDBC
  2. Что такое кластер Hadoop?
  3. Что такое MapReduce в Hadoop?
  4. Что такое большие данные и Hadoop
  5. Команды Hadoop fs