hadoop hdfs hadoop distributed file system
Цей посібник пояснює Hadoop HDFS - розподілену файлову систему, компоненти та архітектуру кластерів Hadoop. Ви також дізнаєтесь про алгоритм обізнаності щодо стійок:
Як ми дізналися в попередньому підручнику, найбільшою проблемою великих даних є збереження їх у існуючій системі. І навіть якщо ми якось зберегли частину її в існуючій системі, обробка BigData зайняла роки.
Результати, які ви хотіли за лічені хвилини, зайняли тижні, а може, і місяці, і завдяки цьому значення цього результату було втрачено.
=> Тут слідкуйте за простими навчальними серіями BigData.
Що ви дізнаєтесь:
Розподілена файлова система Hadoop
Для вирішення цієї проблеми або для вирішення цієї проблеми ми маємо HADOOP. Hadoop вирішив цю проблему великих даних за допомогою Hadoop HDFS.
Hadoop HDFS вирішив проблему зберігання великих даних та Зменшення карти Hadoop вирішив питання, пов’язані з обробкою частини великих даних.
Тепер ми знаємо, що Hadoop по суті має розподілену файлову систему ... А ЧОМУ?
викликаються методи python, які використовуються для додавання елементів до списку або їх видалення зі списку
Чому Hadoop є розподіленою файловою системою?
Спробуємо зрозуміти, що таке розподілена файлова система, та зрозуміти переваги розподіленої файлової системи.
Розподілена файлова система
Візьмемо приклад читання 1 ТБ даних. У нас є сервер, який є хорошим висококласним сервером, який має 4 канали вводу / виводу (вхідний вихід), і кожен канал має пропускну здатність 100 МБ / с, за допомогою цієї машини ви зможете прочитати ці 1 ТБ за 43 Хвилини.
Тепер, якщо ми приведемо 10 номерів машин саме таких, що буде тоді?
Час скорочено рівно до 4,3 хв. Це тому, що всі зусилля були розділені на 10 машин, і тому час, затрачений на обробку 1 Тб даних, скорочується до 1/10готобто 4,3 хвилини.
Подібним чином, коли ми розглядаємо BigData, ці дані діляться на кілька фрагментів даних, і ми фактично обробляємо ці дані окремо, і тому Hadoop обрав розподілену файлову систему над централізованою файловою системою.
Компоненти Hadoop
Hadoop HDFS має 2 основні компоненти для вирішення проблем з BigData.
- Перший компонент - Hadoop HDFS для зберігання великих даних.
- Другий компонент - Hadoop Map Reduce для обробки великих даних.
Тепер, коли ми бачимо архітектуру Хадупа (зображення, подане нижче), він має два крила там, де знаходиться ліве крило “Зберігання” а правий є “Обробка” . Це означає, що лівим є HDFS, тобто файлова система розподілу Hadoop, а правим є YARN і Map Reduce, тобто є частиною обробки.
Використовуючи HDFS, Hadoop дозволяє нам зберігати великі дані, а за допомогою YARN & Map Reduce, Hadoop дозволяє нам обробляти ті самі великі дані, які ми зберігаємо в HDFS.
Як ви можете бачити на зображенні вище, HDFS має два основних демони, або ви можете назвати їх процесами або потоками, які є не що інше, як процеси JAVA, тобто виконуються в JVM - NameNode і DataNode.
NameNode - це головний демон, який працює на Master Machine, тобто, по суті, висококласна машина, а DataNode - це Slave Machine, яка працює на товарному обладнанні. DataNode може бути більше, оскільки підлеглі машини - це більше, ніж головна машина.
Отже, у нас завжди є один NameNode і кілька DataNode, що працюють на підлеглих машинах.
Подібним чином, у нас є YARN з іншого боку, який знову має два демони, один - це менеджер ресурсів, який працює на головній машині, і менеджер вузлів, який працює на підлеглій машині, як і DataNode. Отже, кожна підлегла машина має два демони - один є DataNode, а інший - Node Manager.
На головній машині запущено NameNode та запущено диспетчер ресурсів. NameNode відповідає за управління даними в розподіленій файловій системі Hadoop, а Менеджер ресурсів відповідає за виконання завдань обробки над цими збереженими даними.
NameNode та DataNode
Ми заглибимося в архітектуру HDFS, і тому важливо зрозуміти, що таке NameNode і DataNode, оскільки це два основні демони, які насправді повністю запускають HDFS.
NameNode
- Це Майстер Демон.
- Управління та підтримка DataNodes.
- Записує метадані.
- Отримує серцебиття та блокує звіти з усіх вузлів даних.
Вузол даних
- Це Демон-раб.
- Тут зберігаються фактичні дані.
- Обслуговує запити на читання та запис від клієнтів.
Просто зосередьтеся на Діаграмі, як ви бачите, існує Централізований Ім'я Назви Вузла, який контролює різні Вузли Даних, що є, тобто товарне обладнання. Тож Name Node - це не що інше, як Master Daemon, який підтримує всі DataNode.
Ці NameNode мають всю інформацію про дані, які зберігаються в DataNode. DataNode, як випливає з назви, зберігає дані, що є в кластері Hadoop.
NameNode має лише інформацію про те, які дані зберігаються на якому DataNode. Отже, можна сказати, що NameNode зберігає метадані даних, які зберігаються на DataNodes.
DataNode також виконує інше завдання, тобто він регулярно надсилає серцебиття назад до NameNode. Серцебиття насправді повідомляє NameNode, що цей DataNode ще живий.
Наприклад, DataNodes надсилає серцебиття назад до NameNode, і таким чином NameNode має зображення, що ці DataNodes живі, тому NameNode може використовувати ці DataNode для зберігання додаткових даних або зчитування даних із цих DataNodes.
Тепер ми переходимо до DataNode, DataNode - це не що інше, як підлеглі демони, які насправді зберігають дані, що надсилаються в кластер Hadoop. Ці вузли даних фактично обслуговують запит на читання та запис, який робиться клієнтами.
Якщо хтось хоче прочитати дані з кластера Hadoop, тоді ці запити насправді обробляються вузлами даних, де містяться дані.
Кластерна архітектура Hadoop
У попередній темі, пов’язаній із NameNode та DataNode, ми використовували цей термін “Кластер Hadoop”. Давайте швидко розглянемо, що саме це?
Наведене зображення показує огляд архітектури кластера Hadoop. Кластер Hadoop - це не що інше, як топологія Master-Slave, в якій є Master Machine, як ви можете бачити вгорі, тобто Hadoop Cluster. У цій головній машині є NameNode і запущений диспетчер ресурсів, тобто Master Daemons.
Головна машина підключена до всієї підпорядкованої машини за допомогою основних комутаторів, тому що ці Вузли даних фактично зберігаються в різних стійках, так як ви можете бачити Комп'ютер 1, Комп'ютер 2, Комп'ютер 3 до Комп'ютера N. Це не що інше, як Ведений Машини або DataNodes, і всі вони присутні в одній стійці.
'Стійка насправді являє собою групу машин, які знаходяться фізично в одному конкретному місці і з'єднані між собою'.
Таким чином, пропускна здатність мережі між кожною машиною є якомога мінімальною. Подібним чином, є більше стійок, однак вони не знаходяться в одному і тому ж місці, отже, ми можемо мати “n” кількість стійок, а також може мати “n” кількість DataNodes чи комп’ютерів або підпорядкованих машин у цих стійках.
Ось як підпорядковані машини насправді розподіляються по кластеру, однак одночасно вони з'єднані між собою.
Як дані зберігаються у HDFS?
Зараз ми повільно переходимо до деталей того, як HDFS працює взагалі. Тут ми дослідимо архітектуру HDFS.
Коли ми говоримо, зберігаючи файл у HDFS, дані зберігаються як блоки в HDFS. Весь файл не зберігається у HDFS, тому що, як ви знаєте, Hadoop - це розподілена файлова система.
Отже, якщо у вас розмір файлу, можливо, 1 PB (Peta Byte), то такого типу сховища немає в одній машині, оскільки кластер Hadoop створений за допомогою товарного обладнання. Апаратне забезпечення в одній машині може складати приблизно 1 ТБ або 2 ТБ.
Таким чином, весь файл потрібно розбити на фрагменти даних, які називаються блоками HDFS.
- Кожен файл зберігається на HDFS як блоки.
- Розмір за замовчуванням для кожного блоку становить близько 128 МБ в Apache Hadoop 2.x (і 64 Мб у попередній версії, тобто Apache Hadoop 1.x).
- Існує можливість збільшити або зменшити розмір файлу блоків, використовуючи файл конфігурації, тобто hdfssite.xml, який постачається з пакетом Hadoop.
Давайте візьмемо приклад, щоб зрозуміти цей механізм і подивитися, як створюються ці блоки.
Давайте розглянемо тут файл розміром 248 МБ. Тепер, якщо ми зламаємо цей файл або перемістимо його в кластер Hadoop, тобто 2.x, тоді цей файл буде розбитий на один блок, тобто на блок A розміром 128 МБ, а на інший блок B 120 Мб.
Як бачите, перший блок має 128 МБ, тобто там вирізається сама перша плита, і тому інший блок має 120 МБ, а не 128 МБ, тобто він не збирається витрачати місця, якщо розмір решти файлу менший ніж розмір блоку за замовчуванням.
Тепер перед нами інша проблема, тобто чи безпечно мати по одній копії кожного блоку?
як відкрити .bin файли -
Відповідь НІ, оскільки існує ймовірність того, що система може вийти з ладу, і це не що інше, як товарне обладнання, через яке ми можемо мати великі проблеми. Щоб подолати цю проблему, Hadoop HDFS має гарне рішення, тобто “Реплікація блоку”.
Реплікація блоку архітектури Hadoop
Hadoop створює репліки кожного блоку, який зберігається у розподіленій файловій системі Hadoop, і саме таким чином Hadoop є системою, що допускає несправності, тобто, навіть якщо ваша система виходить з ладу або ваш DataNode виходить з ладу або копія втрачається, у вас буде кілька інших копій присутній в інших DataNodes або на інших серверах, так що ви завжди можете вибрати ці копії звідти.
Як видно з наведеної вище схеми, яка представляє реплікацію блоків, існує п’ять різних блоків файлу, тобто блок 1, 2,3,4,5. Спершу перевіримо блок 1, і ви знайдете копії блоку 1 у вузлах 1, 2 і 4.
Аналогічно, Блок 2 також отримав три копії, тобто Вузол 2, Вузол 3 і Вузол 4, і тому саме для Блоків 3, 4 та 5 у відповідних Вузлах.
Отже, окрім того, що створюються репліки, кожен блок реплікувався тричі, тобто Hadoop дотримується коефіцієнта реплікації за замовчуванням три, що означає, що будь-який файл, який ви копіюєте у файлову систему розподілу Hadoop, тричі реплікується.
Іншими словами, якщо ви скопіюєте 1 ГБ файлу до файлової системи Hadoop Distribution File, він фактично зберігає 3 ГБ файлу у HDFS. Хороша частина полягає в тому, що коефіцієнт реплікації за замовчуванням змінюється шляхом внесення змін до файлів конфігурації Hadoop.
Як Hadoop вирішує, де зберігати репліки?
Hadoop насправді дотримується концепції обізнаності в стійці, щоб вирішити, де зберігати яку копію блоку.
Нижче наведено схему, що зображує алгоритм обізнаності щодо стійок.
Існує три різні стійки, тобто Rack-1, Rack-2 і Rack-3.
Rack-1 має чотири вузли даних, а також Rack-2 і Rack-3, таким чином, весь кластер Hadoop буде складатися з усіх трьох стійок, і буде 12 вузлів даних.
Скажімо, блок A копіюється на DataNode 1 у Rack-1, оскільки, згідно з концепцією обізнаності зі стійкою, репліка блоку A не може бути створена в тій самій стійці, і її потрібно створити в будь-якій іншій стійці, крім Rack-1, як основний файл вже існує в Rack-1.
Якщо ми створимо репліки Блоку А в тому самому Стійці-1 і у випадку відмови всього Раку-1, ми точно втратимо дані, таким чином, репліки повинні зберігатися в будь-якій іншій стійці, але не в Раці-1.
Тож репліка буде створена в DataNode 6 і 8 Rack-2. Подібним чином, для блоку B і блоку C копії збираються створювати в різних стійках, як показано на наведеній вище схемі.
Висновок
З цього підручника ми дізналися з наступних вказівок -
- Hadoop HDFS вирішує проблему зберігання BigData.
- Hadoop Map Reduce вирішує проблеми, пов’язані з обробкою BigData.
- NameNode є головним демоном і використовується для управління та обслуговування DataNodes.
- DataNode є веденим демоном, і фактичні дані зберігаються тут. Він служить для читання та написання запитів від клієнтів.
- У Hadoop Cluster стійка насправді являє собою групу машин, які фізично знаходяться в одному конкретному місці і з'єднані між собою.
- Кожен файл зберігається на HDFS як блоки.
- Розмір за замовчуванням кожного блоку становить близько 128 МБ в Apache Hadoop 2.x (64 МБ у попередній версії, тобто Apache Hadoop 1.x)
- Існує можливість збільшити або зменшити розмір файлу блоків, використовуючи файл конфігурації, тобто hdfssite.xml, який постачається з пакетом Hadoop.
У наступному посібнику з HDFS ми дізнаємося про архітектуру HDFS та механізми читання та запису.
=> Завітайте сюди, щоб побачити навчальну серію BigData для всіх.
Рекомендована література
- Що таке Hadoop? Підручник Apache Hadoop для початківців
- Маніпулювання файлами в Unix: огляд файлової системи Unix
- Спеціальні символи Unix або метасимволи для маніпулювання файлами
- Дозволи доступу до файлів Unix: Unix Chmod, Chown та Chgrp
- Ranorex Test Suite, створення модуля тестування, файл UserCode, Xpath та прив'язка даних
- Об'єкти файлу VBScript: CopyFile, DeleteFile, OpenTextFile, читання та запис текстового файлу
- Операції виведення файлу на C ++
- Розгортання Java: створення та виконання файлу Java JAR