Hadoop Distributed File System (HDFS) - це розподілена файлова система, яка забезпечує високошвидкісний доступ до даних і є одним з ключових компонентів платформи Hadoop. HDFS - це файлова система на основі Java, яка забезпечує масштабовність і надійне зберігання даних, призначена для розбиття великих кластерів на стандартних серверах. HDFS, MapReduce та YARN утворюють ядро Apache Hadoop.
Концепції та структура HDFS
HDFS є ієрархічною файловою системою. Таким чином, в HDFS є підтримка вкладення каталогів. У каталозі може розташовуватися нуль або більше файлів, а також будь-яка кількість підкаталогів.
HDFS складається з наступних обов'язкових компонентів:
- Вузол імен (NameNode) - програмний код, що виконується, в загальному випадку, на виділеній машині примірника HDFS і відповідає за файлові операції (роботу з метаданими);
- Вузол даних (DataNode) - програмний код, як правило, виконується виділеної машині примірника HDFS і відповідає за операції рівня файлу (робота з блоками даних).
Hadoop містить єдиний вузол типу NameNode і довільну кількість вузлів типу DataNode.
Основні концепції, закладені при проектуванні HDFS, і архітектурні рішення, застосовувані для реалізації цих концепцій:
- Обсяг даних. HDFS не повинна мати досяжних в осяжному майбутньому обмежень на обсяг збережених даних.
Архітектурне рішення:
- HDFS зберігає файли поблочно. Блоки в HDFS розподілені між вузлами даних обчислювального кластера. Всі блоки (крім останнього блоку файлу) мають однаковий розмір, крім того блок може бути розміщений на декількох вузлах.
- Відмовостійкість. HDFS розцінює вихід з ладу вузла даних як норму, а не як виняток (дійсно, ймовірність виходу хоча б одного вузла з тисячі навіть на надійному фізичному обладнанні істотна).
Архітектурні рішення:
- Для забезпечення відмовостійкості всі дані в HDFS репліціюются налаштовувану кількість разів.
- Захист від копіювання пошкоджених даних вирішено за допомогою зберігання контрольних сум в окремому прихованому файлі.
- Копіювання метаданих за допомогою вторинного вузла імен.
- Автодіагностика. Діагностика справності вузлів в Hadoop-кластері не повинна вимагати додаткового адміністрування.
Архітектурні рішення:
- Кожен вузол даних через певні інтервали часу відправляє діагностичні повідомлення вузлу імен.
- Логування операцій над файлами в спеціальний журнал вузла імен.
Продуктивність. У квітні 2008 року Hadoop побив світовий рекорд продуктивності в стандартизованном тесті продуктивності по сортуванню даних - 1 Тбайт був оброблений за 309 сек. на кластері з 910 вузлів.
Архітектурні рішення:
- Принцип «один раз записати - багато разів прочитати» (Write-once and read-many, WORM) повністю звільняє систему від блокувань типу «запис-читання». Позбутися від конфліктів множинного запису архітектори вирішили, дозволивши запис у файл в один час тільки одному процесу.
- HDFS оптимізований під потокову передачу даних.
- Зниження навантаження на канали передачі даних (а саме ці канали найчастіше є вузьким місцем у розподілених середовищах), а також більш раціональне використання простору на жорстких дисках дозволило досягти стиснення даних.
- Реплікація відбувається в режимі.
- Зберігання всіх метаданих вузла "NameNode" в оперативній пам'яті.
Вузол імен
Вузол імен (NameNode) являє собою програмний код, що виконується, в загальному випадку, на виділеній машині екземпляра HDFS і відповідає за файлові операції, такі як відкриття і закриття файлів, створення і видалення каталогів. Крім того, NameNode відповідає за:
- управління простором імен файлової системи
- управління доступом з боку зовнішніх клієнтів
- відповідність між файлами і репліціюватися на вузлах даних блоками
Hadoop містить єдиний вузол типу NameNode, що породжує вразливість всього кластера, викликану виходом вузол типу NameNode (одинична точка відмови). HDFS підтримує вторинний вузол імен - Secondary NameNode. Часто цей факт є причиною омани, що при відмові первинного вузла імен, його автоматично замінить вторинний вузол імен. Насправді підтримки автоматичного відновлення кластера після відмови первинного вузла NameNode у версії 1.0.0 немає.
Вторинний вузол імен виконує такі функції:
- копіює образ HDFS (розташований у файлі FsImage) і лог транзакцій операцій з файловими блоками (EditLog) у тимчасову папку
- застосовує зміни, накопичені в балці транзакцій до образу HDFS
- записує новий образ FsImage на вузол NameNode, після чого відбувається очищення EditLog
Вузол даних
Вузол даних (DataNode), як і вузол NameNode, також являє собою програмний код, що виконується, як правило, на виділеній машині екземпляра HDFS і відповідає за операції рівня файлу, такі як: запис і читання даних, виконання команд створення, видалення і реплікації блоків , отримані від вузла NameNode. Крім того, вузол DataNode відповідає за:
- періодичну відправку повідомлення про стан (heartbeat-повідомлення)
- обробку запитів на читання і запис, що надходять від клієнтів файлової системи HDFS
Клієнти HDFS
Клієнти являють собою програмних клієнтів, що працюють з файловою системою. У ролі клієнта може виступати будь-який додаток або користувач, який взаємодіє через спеціальний API з файловою системою HDFS.
Для клієнта HDFS виглядає як звичайна файлова система - ієрархія каталогів з вкладеними в них підкаталогами і файлами. Як і у файлових системах загального призначення, клієнтові, за наявності достатніх прав, дозволені наступні операції: створення, видалення, перейменування, переміщення. Вищеназвані операції застосовувані до каталогів і файлів.
Найбільш істотна відмінність роботи клієнта з файловою системою HDFS від роботи з файловою системою загального призначення - це те, що при створенні файлу клієнт може явно вказати розмір блоку файлу (за умовчанням 64 Мб) і кількість створюваних реплік (за замовчуванням значення дорівнює 3) .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет