Вступ до архітектури HDFS

HDFS означає розроблену файлову систему Hadoop, яка сама говорить, що файли поділяються на блоки та зберігаються на декількох машинах.

Особливості HDFS

Особливості HDFS полягають у наступному:

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

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

2. Масштабованість

У HDFS дані зберігаються на декількох вузлах даних у вигляді блоків. HDFS дозволяє користувачам збільшувати розмір блоків, коли це потрібно. Існує два типи механізму масштабованості, що використовується в HDFS - горизонтальна масштабованість і вертикальна масштабованість.

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

Це унікальні особливості HDFS, які дозволяють користувачеві отримати легкий доступ до своїх даних у разі будь-якого збою обладнання.

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

HDFS дотримується архітектури master-slave, яка має такі компоненти:

1. NameNode:

NameNode також відомий як головний вузол, оскільки він обробляє всі блоки, наявні в DataNodes.

NameNode виконує такі завдання:

  • Керуйте всіма блоками DataNode
  • Надає доступ до файлу користувачеві
  • Зберігає всі записи блоків, присутніх у DataNode
  • NameNode записує всю інформацію про файли, наприклад, якщо ім'я файлу перейменовано, або вміст було змінено або видалено NameNode негайно записати цю модифікацію в EditLogs
  • Він бере записи усіх блоків з вузлів даних, щоб переконатися, що весь блок живий на DataNode.
  • У разі помилки, якщо трапляється якийсь апаратний збій, він негайно вибирає інший DataNode для створення реплікації та управління зв’язком з усіма DataNodes

Типи файлів у NameNode

NameNode містить два типи файлів FsImage та EditLogs

i. 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.

Вузол даних виконує такі завдання:

  • Усі дані зберігаються в DataNodes
  • Він виконує всі операції з файлами відповідно до запиту користувачів, наприклад, зчитування вмісту файлів, запис нових даних у файли,
  • Слід також виконувати всі вказівки, які дає NameNode, наприклад, перейменування файлу, видалення деяких блоків у DataNode, створення блоків тощо

4. Вузол контрольної точки:

Вузол контрольної точки - це вузол, який створював контрольну точку файлів через рівні проміжки часу. Вузол контрольної точки в HDFS, завантажте FsImage та EditLogs з NameNode та об'єднайте їх, щоб створити нове зображення та надішліть це нове зображення до NameNode. Остання контрольна точка зберігається в каталозі з тією ж структурою, що і каталог намендода. Через це зображення, що перевіряється, завжди доступне, якщо воно потребує.

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

Функція вузла резервного копіювання аналогічна вузлу Checkpoint для виконання завдання контрольної точки. У Hadoop вузол резервного копіювання зберігає останню та оновлену копію простору імен файлової системи. Немає необхідності завантажувати файли FsImage та editsLogs з активної NameNode для створення контрольної точки у вузлі резервного копіювання, оскільки вона синхронізована зі станом активного NameNode. Функція вузла "Резервне копіювання" є більш точною, оскільки збережіть простір імен у локальний файл FsImage та скиньте editLogs.

6. Блоки:

Усі дані користувачів зберігаються у файлах HDFS, які потім діляться на невеликі сегменти. Ці сегменти зберігаються у вузлах даних. Сегменти, присутні в DataNodes, називаються блоком. За замовчуванням розмір цих блоків становить 128 Мб. Розмір блоку можна змінити відповідно до вимог користувачів, налаштувавши HDFS.

Якщо розмір даних менший за розмір блоку, то розмір блоку дорівнює розміру даних. Наприклад, якщо дані розміром 135 Мб, то вони створять 2 блоки. Один буде розміром 128 Мб за замовчуванням, а інший - 7 МБ, а не 128 Мб. Через це економиться багато місця та годинника диска.

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

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

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

Для запису файлів у HDFS клієнт передасть метадані в NameNode. Nameode відповідає на кілька блоків, їх розташування, копії тощо. Клієнт ділить файли на кілька блоків на основі інформації про ім'я. Потім він починає надсилати їх до DataNode. По-перше, клієнт надсилає блок A в DataNode 1 з іншою інформацією про DataNodes. Коли DataNode 1 отримує клієнтський блок A, DataNode 1 копіює той же блок у ту саму стійку до DataNode 2. Оскільки обидва DataNode знаходяться в одній стійці, передача блоку здійснюється за допомогою перемикача стійки. DataNode 2 тепер копіює один і той же блок в DataNode 3 Оскільки обидва DataNode знаходяться в різних стійках, передача блоку здійснюється за допомогою перемикача поза шкалою. Як тільки DataNode отримає блоки клієнта, він надішле підтвердження NameMode. Кожен блок файлу повторюється однаковий процес.

Прочитайте операцію

Для операції зчитування Перший клієнт передає метадані в NameNode. Клієнт виходить з NameNode з ім'ям файлу та місцем розташування. Nameode відповідає номером блоку, місцеположенням, копіями та іншою інформацією. Після цього Клієнт повідомляє DataNodes. На основі інформації, отриманої від NameNode, клієнт починає зчитувати дані паралельно з DataNodes. Коли весь блок файлу отримує клієнт або додаток, він об'єднує ці блоки в оригінальну форму файлу.

Висновок - архітектура HDFS

За допомогою NameNode та DataNode надійно зберігає дуже великі файли на машинах у великому кластері. Через толерантність до помилок корисно отримати доступ до даних під час відмови програмного чи апаратного забезпечення. Так працює архітектура HDFS.

Рекомендовані статті

Це було керівництвом по архітектурі HDFS. Тут ми обговорили основні поняття з різними типами архітектури, особливості та управління реплікацією архітектури HDFS. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Що таке моделювання даних?
  2. Що таке візуалізація даних
  3. Що таке Склад даних?
  4. Що таке SQL Developer?

Категорія: