Hadoop Distributed Filesystem
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 розцінює вихід з ладу вузла даних як норму, а не як виняток (дійсно, ймовірність виходу хоча б одного вузла з тисячі навіть на надійному фізичному обладнанні істотна).
Архітектурні рішення:
- Автодіагностика. Діагностика справності вузлів в Hadoop-кластері не повинна вимагати додаткового адміністрування.
Архітектурні рішення:
- Кожен вузол даних через певні інтервали часу відправляє діагностичні повідомлення вузлу імен.
- Логування операцій над файлами в спеціальний журнал вузла імен.
- Продуктивність. У квітні 2008 року Hadoop побив світовий рекорд продуктивності в стандартизованном тесті продуктивності по сортуванню даних - 1 Тбайт був оброблений за 309 сек. на кластері з 910 вузлів.