Введение в архитектуру HDFS

HDFS расшифровывается как Hadoop Distributed File System, которая сама говорит, что файлы разбиты на блоки и хранятся на нескольких машинах.

Особенности HDFS

Особенности HDFS заключаются в следующем:

1. Доступность

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

2. Масштабируемость

В HDFS данные хранятся на нескольких узлах данных в виде блоков. HDFS позволяет пользователям увеличивать размер блоков при необходимости. В HDFS используется два типа механизма масштабируемости - горизонтальная и вертикальная.

3. Репликация

Это уникальные функции HDFS, которые позволяют пользователю легко получить доступ к своим данным в случае сбоя оборудования.

Архитектура HDFS

HDFS следует архитектуре «ведущий-ведомый», которая имеет следующие компоненты:

1. NameNode:

NameNode также известен как главный узел, потому что он обрабатывает все блоки, присутствующие в узлах данных.

NameNode выполняет следующие задачи:

  • Управлять всеми блоками DataNode
  • Предоставляет пользователю доступ к файлам
  • Сохраняет все записи блоков, присутствующих на DataNode
  • NameNode записывает всю информацию о файлах, например, если имя файла переименовывается или содержимое было изменено или удалено. NameNode немедленно записывает это изменение в EditLogs.
  • Он берет записи всех блоков из узлов данных, чтобы гарантировать, что все блоки живы в DataNode.
  • В случае ошибки, если происходит сбой какого-либо оборудования, он немедленно выбирает другой узел данных, чтобы создать репликацию и управлять связью со всеми узлами данных.

Типы файлов в NameNode

NameNode содержит два типа файлов FsImage и EditLogs

я. FsImage: его также называют изображением файла, поскольку он содержит всю информацию о файловой системе с пространствами имен. Он также содержит все каталоги и файлы файловой системы в последовательном порядке.

II. EditLogs: текущие изменения, сделанные в файлах файловой системы, хранятся в EditLogs.

2. Вторичный NameNode

Вторичный NameNode также называется узлом контрольной точки, поскольку он выполняет обычные контрольные точки. Он действует как помощник для основного NameNode.

Вторичный NameNode выполняет следующие задачи

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

3. DataNode

DataNode также известен как подчиненный узел, поскольку он обрабатывает каждый узел, содержащий данные на подчиненном компьютере. DataNode хранит данные в формате ext3 или ext4.

Узел данных выполняет следующие задачи:

  • Все данные хранятся на узлах данных
  • Он выполняет все операции с файлами по запросу пользователя, например, чтение содержимого файла, запись новых данных в файлы,
  • Он также следует всем инструкциям, данным NameNode, например, переименование файла, удаление некоторых блоков в DataNode, создание блоков и т. Д.

4. Узел контрольной точки:

Узел контрольной точки - это узел, который создает контрольную точку файлов через равные промежутки времени. Узел контрольных точек в HDFS, загрузите FsImage и EditLogs из NameNode и объедините их, чтобы создать новое изображение и отправить это новое изображение в NameNode. Последняя контрольная точка хранится в каталоге с той же структурой, что и каталог namenode. Из-за этого изображение контрольной точки всегда доступно, если это необходимо.

5. Резервный узел:

Функция резервного узла аналогична узлу контрольной точки для выполнения задачи контрольной точки. В Hadoop узел Backup хранит самую последнюю и обновленную копию пространства имен файловой системы. Нет необходимости загружать файлы FsImage и editsLogs из активного NameNode для создания контрольной точки в узле Backup, поскольку она синхронизируется с состоянием активного NameNode. Функция узла Backup более точна, поскольку сохраняет пространство имен в локальном файле FsImage и сбрасывает editLogs.

6. Блоки:

Все данные пользователей хранятся в файлах HDFS, которые затем делятся на небольшие сегменты. Эти сегменты хранятся в узлах данных. Сегменты, которые присутствуют в узлах данных, называются блоком. Размер блока по умолчанию для этих блоков составляет 128 МБ. Размер блока может быть изменен в соответствии с требованиями пользователя путем настройки HDFS.

Если размер данных меньше размера блока, тогда размер блока равен размеру данных. Например, если размер данных составляет 135 МБ, он создаст 2 блока. Один будет иметь размер по умолчанию 128 МБ, а другой - только 7 МБ, а не 128 МБ. Из-за этого экономится много места и время на диске.

Управление репликацией в архитектуре HDFS:

HDFS отказоустойчива. Отказоустойчивость - это сила системы в случае сбоев и того, как она реагирует на ошибки и сложные условия. Отказоустойчивость работает на основе процесса создания реплики. Копии данных пользователя сохраняются на компьютерах в кластере DHFS. Следовательно, если в системе есть какой-либо сбой или сбой, копия этих данных может быть доступна с других машин кластера HDFS. Каждый блок в архитектуре HDFS имеет 3 реплики, которые хранятся в разных узлах данных. NameNode поддерживает копии, доступные в DataNodes. NameNode добавляет или удаляет копии на основе критериев недостаточной репликации или избыточной репликации блоков.

Операция записи

Для записи файлов в HDFS клиент будет связываться с метаданными в NameNode. Nameode отвечает несколькими блоками, их местоположением, копиями и т. Д. Клиент делит файлы на несколько блоков на основе информации nameode. Затем он начинает отправлять их в DataNode. Сначала клиент отправляет блок A в узел данных 1 с другой информацией о узлах данных. Когда DataNode 1 получает клиентский блок A, DataNode 1 копирует один и тот же блок в одну и ту же стойку в DataNode 2. Поскольку оба узла DataNode находятся в одной и той же стойке, передача блока выполняется через коммутатор стойки. DataNode 2 теперь копирует один и тот же блок в DataNode 3, поскольку оба DataNode находятся в разных стойках, передача блока осуществляется с помощью переключателя вне стойки. Как только DataNode получает клиентские блоки, он отправляет подтверждение в NameMode. Каждый блок файла, один и тот же процесс повторяется.

Операция чтения

Для операции чтения Первый клиент связывается с метаданными для NameNode. Клиент выходит из NameNode с именем и местоположением файла. Nameode отвечает номером блока, местоположением, копиями и другой информацией. После этого Клиент связывается с Узлами данных. На основании информации, полученной от NameNode, клиент начинает чтение данных параллельно с DataNode. Когда весь блок файла получен клиентом или приложением, он объединяет эти блоки в исходную форму файла.

Вывод - архитектура HDFS

С помощью NameNode и DataNode он надежно хранит очень большие файлы на компьютерах в большом кластере. Из-за отказоустойчивости полезно получить доступ к данным при сбое программного или аппаратного обеспечения. Вот как работает архитектура HDFS.

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

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

  1. Что такое моделирование данных?
  2. Что такое визуализация данных
  3. Что такое хранилище данных?
  4. Что такое SQL Developer?