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, Інтернет
Hadoop Distributed File System HDFS ce rozpodilena fajlova sistema yaka zabezpechuye visokoshvidkisnij dostup do danih i ye odnim z klyuchovih komponentiv platformi Hadoop HDFS ce fajlova sistema na osnovi Java yaka zabezpechuye masshtabovnist i nadijne zberigannya danih priznachena dlya rozbittya velikih klasteriv na standartnih serverah HDFS MapReduce ta YARN utvoryuyut yadro Apache Hadoop Koncepciyi ta struktura HDFSHDFS ye iyerarhichnoyu fajlovoyu sistemoyu Takim chinom v HDFS ye pidtrimka vkladennya katalogiv U katalozi mozhe roztashovuvatisya nul abo bilshe fajliv a takozh bud yaka kilkist pidkatalogiv HDFS skladayetsya z nastupnih obov yazkovih komponentiv Vuzol imen NameNode programnij kod sho vikonuyetsya v zagalnomu vipadku na vidilenij mashini primirnika HDFS i vidpovidaye za fajlovi operaciyi robotu z metadanimi Vuzol danih DataNode programnij kod yak pravilo vikonuyetsya vidilenoyi mashini primirnika HDFS i vidpovidaye za operaciyi rivnya fajlu robota z blokami danih Hadoop mistit yedinij vuzol tipu NameNode i dovilnu kilkist vuzliv tipu DataNode Osnovni koncepciyi zakladeni pri proektuvanni HDFS i arhitekturni rishennya zastosovuvani dlya realizaciyi cih koncepcij Obsyag danih HDFS ne povinna mati dosyazhnih v osyazhnomu majbutnomu obmezhen na obsyag zberezhenih danih Arhitekturne rishennya HDFS zberigaye fajli poblochno Bloki v HDFS rozpodileni mizh vuzlami danih obchislyuvalnogo klastera Vsi bloki krim ostannogo bloku fajlu mayut odnakovij rozmir krim togo blok mozhe buti rozmishenij na dekilkoh vuzlah Vidmovostijkist HDFS rozcinyuye vihid z ladu vuzla danih yak normu a ne yak vinyatok dijsno jmovirnist vihodu hocha b odnogo vuzla z tisyachi navit na nadijnomu fizichnomu obladnanni istotna Arhitekturni rishennya Dlya zabezpechennya vidmovostijkosti vsi dani v HDFS repliciyuyutsya nalashtovuvanu kilkist raziv Zahist vid kopiyuvannya poshkodzhenih danih virisheno za dopomogoyu zberigannya kontrolnih sum v okremomu prihovanomu fajli Kopiyuvannya metadanih za dopomogoyu vtorinnogo vuzla imen Avtodiagnostika Diagnostika spravnosti vuzliv v Hadoop klasteri ne povinna vimagati dodatkovogo administruvannya Arhitekturni rishennya Kozhen vuzol danih cherez pevni intervali chasu vidpravlyaye diagnostichni povidomlennya vuzlu imen Loguvannya operacij nad fajlami v specialnij zhurnal vuzla imen Produktivnist U kvitni 2008 roku Hadoop pobiv svitovij rekord produktivnosti v standartizovannom testi produktivnosti po sortuvannyu danih 1 Tbajt buv obroblenij za 309 sek na klasteri z 910 vuzliv Arhitekturni rishennya Princip odin raz zapisati bagato raziv prochitati Write once and read many WORM povnistyu zvilnyaye sistemu vid blokuvan tipu zapis chitannya Pozbutisya vid konfliktiv mnozhinnogo zapisu arhitektori virishili dozvolivshi zapis u fajl v odin chas tilki odnomu procesu HDFS optimizovanij pid potokovu peredachu danih Znizhennya navantazhennya na kanali peredachi danih a same ci kanali najchastishe ye vuzkim miscem u rozpodilenih seredovishah a takozh bilsh racionalne vikoristannya prostoru na zhorstkih diskah dozvolilo dosyagti stisnennya danih Replikaciya vidbuvayetsya v asinhronnomu rezhimi Zberigannya vsih metadanih vuzla NameNode v operativnij pam yati Vuzol imenVuzol imen NameNode yavlyaye soboyu programnij kod sho vikonuyetsya v zagalnomu vipadku na vidilenij mashini ekzemplyara HDFS i vidpovidaye za fajlovi operaciyi taki yak vidkrittya i zakrittya fajliv stvorennya i vidalennya katalogiv Krim togo NameNode vidpovidaye za upravlinnya prostorom imen fajlovoyi sistemi upravlinnya dostupom z boku zovnishnih kliyentiv vidpovidnist mizh fajlami i repliciyuvatisya na vuzlah danih blokami Hadoop mistit yedinij vuzol tipu NameNode sho porodzhuye vrazlivist vsogo klastera viklikanu vihodom vuzol tipu NameNode odinichna tochka vidmovi HDFS pidtrimuye vtorinnij vuzol imen Secondary NameNode Chasto cej fakt ye prichinoyu omani sho pri vidmovi pervinnogo vuzla imen jogo avtomatichno zaminit vtorinnij vuzol imen Naspravdi pidtrimki avtomatichnogo vidnovlennya klastera pislya vidmovi pervinnogo vuzla NameNode u versiyi 1 0 0 nemaye Vtorinnij vuzol imen vikonuye taki funkciyi kopiyuye obraz HDFS roztashovanij u fajli FsImage i log tranzakcij operacij z fajlovimi blokami EditLog u timchasovu papku zastosovuye zmini nakopicheni v balci tranzakcij do obrazu HDFS zapisuye novij obraz FsImage na vuzol NameNode pislya chogo vidbuvayetsya ochishennya EditLogVuzol danihVuzol danih DataNode yak i vuzol NameNode takozh yavlyaye soboyu programnij kod sho vikonuyetsya yak pravilo na vidilenij mashini ekzemplyara HDFS i vidpovidaye za operaciyi rivnya fajlu taki yak zapis i chitannyadanih vikonannya komand stvorennya vidalennya i replikaciyi blokiv otrimani vid vuzla NameNode Krim togo vuzol DataNode vidpovidaye za periodichnu vidpravku povidomlennya pro stan heartbeat povidomlennya obrobku zapitiv na chitannya i zapis sho nadhodyat vid kliyentiv fajlovoyi sistemi HDFSKliyenti HDFSKliyenti yavlyayut soboyu programnih kliyentiv sho pracyuyut z fajlovoyu sistemoyu U roli kliyenta mozhe vistupati bud yakij dodatok abo koristuvach yakij vzayemodiye cherez specialnij API z fajlovoyu sistemoyu HDFS Dlya kliyenta HDFS viglyadaye yak zvichajna fajlova sistema iyerarhiya katalogiv z vkladenimi v nih pidkatalogami i fajlami Yak i u fajlovih sistemah zagalnogo priznachennya kliyentovi za nayavnosti dostatnih prav dozvoleni nastupni operaciyi stvorennya vidalennya perejmenuvannya peremishennya Vishenazvani operaciyi zastosovuvani do katalogiv i fajliv Najbilsh istotna vidminnist roboti kliyenta z fajlovoyu sistemoyu HDFS vid roboti z fajlovoyu sistemoyu zagalnogo priznachennya ce te sho pri stvorenni fajlu kliyent mozhe yavno vkazati rozmir bloku fajlu za umovchannyam 64 Mb i kilkist stvoryuvanih replik za zamovchuvannyam znachennya dorivnyuye 3