Database
 sql >> база данни >  >> RDS >> Database

Въведение в HDFS | Какво е HDFS и как работи?

Основната техника за съхранение на файлове в хранилището се крие във файловата система, която операционната среда използва. За разлика от обичайните файлови системи, Hadoop използва различна файлова система, която се занимава с големи набори от данни в разпределена мрежа. Нарича се Разпределена файлова система на Hadoop (HDFS) . Тази статия представя идеята, като за начало има свързана основна информация.

Какво е файлова система?

Файлова система обикновено е метод и структура от данни, които операционната система използва за управление на файлове на диск или дял. От гледна точка на магнитния диск, всяка информация е заряд, съхраняван в сектори в пистите. Мислете за пистите като спирални редове и сектори като малките клетки в спиралните коловози. Сега, ако поискаме от диска да намери някои данни, той в най-добрия случай може да пренасочи главата си към някои сектори в спиралната последователност. Тези необработени данни нямат смисъл, освен ако операционната система не се появи в картината; той отговаря за разделянето на информацията от колекция от сектори, които да бъдат разпознати като файл. Операционна система организира информацията в структура от счетоводни данни, наречена файлова система. Тази структура определя модела на счетоводството. Но има известна техническа разлика за това как операционните системи управляват тази структура. Например, Windows използва модела FAT32, NTFS, Linux използва EXT2, EXT3 и т.н. Но основната идея е, че всички те организират данните според определена структура.

Организацията на файловата система е основно отговорна за управлението на създаването, модифицирането и изтриването на файлове (директориите също са файлове), дял на диска, размери на файлове и т.н., и те работят директно върху необработени сектори на диск или дял.

Файлове в разпределена система

Характеристиките на разпределената система са различни в смисъл, че съхранението е разпръснато между множество машини в мрежа. Едно хранилище не може да съдържа толкова голямо количество данни. Ако една машина има ограничен капацитет за съхранение и мощност на обработка, но когато работата по обработка и съхранението се разпределят между машини в мрежата, мощността и ефективността стават многообразни. Това не само отваря възможността за обширна процесорна мощност, но също така подпомага използването на съществуващата инфраструктура. Този резултат е, че разходите са сведени до минимум, но ефективността се увеличава. Всяка отделна машина в мрежата се превръща в потенциален работен кон, който съхранява ограничени данни, като същевременно е част от неограничено съхранение и обширна мощност за обработка. Компромисът е сложност. Ако това може да се използва с иновативни техники, разпределената система е отлична за справяне с проблемите на големите данни. HDFS файловата система има за цел да постигне това. Всъщност, освен HDFS, има много други подобни разпределени файлови системи, като GPFS на IBM (Обща паралелна файлова система), Ceph (връзка към Уикипедия:списък на разпределените файлови системи) и други подобни. Всички те се опитват да решат този проблем от различни посоки с различни нива на успех.

Общ преглед на HDFS

Нормалната файлова система е проектирана да работи на една машина или една операционна среда. Наборите от данни в Hadoop изискват капацитет за съхранение извън това, което една физическа машина може да предостави. Поради това става наложително да се разделят данните между редица машини. Това изисква специален процес за управление на файловете в разпределената мрежа. HDFS е файловата система, която специално се занимава с този проблем. Тази файлова система е по-сложна от обикновената файлова система, защото трябва да се справи с мрежово програмиране, фрагментация, толерантност към грешки, съвместимост с локална файлова система и т.н. Той дава възможност на Hadoop да изпълнява приложения за големи данни на множество сървъри. Характеризира се с висока устойчивост на грешки с висока пропускателна способност на данни през евтин хардуер. Целта на файловата система HDFS е, както следва:

  • За работа с много големи файлове
  • Достъпът до поточно предаване на данни до файловата система трябва да използва модел за запис веднъж и многократно четене.
  • Работете с евтин хардуер за стоки
  • Трябва да използва достъп до данни с ниска латентност.
  • Поддържа огромен брой файлове
  • Поддържайте множество програми за записване на файлове с произволна модификация на файлове

Основи на HDFS

Най-малкото количество данни, което се чете и записва на диск, има нещо, наречено размер на блока . Обикновено размерът на този блок е 512 байта, а блоковете на файловата система са няколко килобайта. HDFS работи на същия принцип, но размерът на блока е много по-голям. По-големият размер на блока усилва търсенето, като минимизира търсенията и следователно разходите. Тези блокове са разпределени в нещо, наречено клъстери , които не са нищо друго освен блокове и копия на блокове на различни сървъри в мрежата. Отделните файлове се репликират между сървърите в клъстера.

Има два типа възли, работещи в клъстера по модел главен-подчинен. Главният възел се нарича namenodes и работният възел се нарича datanodes . Именно чрез тези възли HDFS поддържа файловото (и директорийното) системно дърво и метаданни. Всъщност файлът се разделя на блокове и се съхранява в подмножество от datanode да се разпространи в клъстера. Datanode отговаря за заявките за четене, запис, блокиране, създаване, изтриване и репликация във файловата система.

именните точки , от друга страна, са сървъри, които наблюдават достъпа до файловата система и поддържат файлове с данни в HDFS. Те картографират блоковете към възела на данни и обработват заявки за отваряне, затваряне и преименуване на файл/директория.

Datanodes са основната част на файловата система и вършат работата по съхранение и извличане на заявки за блок от клиента. Именов възел е поддържащият, на когото datanodes доклад. Това означава, че ако имената са заличени, информацията за файловете ще бъде загубена. Следователно Hadoop гарантира, че възелът на името е достатъчно устойчив, за да издържи на всякакъв вид повреда. Една техника за гарантиране на това е архивирането му във вторичен възел на име чрез периодично сливане на изображението на пространството от имена с дневника за редактиране. Вторичният възел на име обикновено се намира на отделна машина, за да поеме ролята на основен namenode в случай на сериозна повреда.

Има много начини за взаимодействие с файловата система HDFS, но интерфейсът на командния ред е може би най-простият и най-често срещаният. Hadoop може да се инсталира на една машина и да се стартира, за да се опита от първа ръка. ще разгледаме това в следващите статии, така че следете.

Операции с файловата система

Операциите на файловата система HDFS са доста подобни на нормалните операции на файловата система. Ето някои обяви, за да дадете представа.

Копира файлове от локалната файлова система в HDFS:

% hadoop fs -copyFromLocal docs/sales.txt hdfs://localhost/
   user/mano/sales.txt

Създава директория в HDFS:

% hadoop fs -mkdir students

Изброява файлове и директории в текущата работна директория в HDFS:

% hadoop fs -ls .

Заключение

HDFS е реализация на това, което прави файловата система, представена от абстракцията на Hadoop. Hadoop е написан на Java; следователно, всички взаимодействия на файловата система се застъпват чрез Java API. Интерфейсът на командния ред е обвивка, предоставена за общи взаимодействия. Изучаването на HDFS отваря различен хоризонт към сектора на разпределената архитектура и нейните сложни работни процедури. Предстои много работа за усъвършенстването на този модел на изчисления, чийто тласък несъмнено са Big Data през последните години.

Справка

HDFS архитектурна документация


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Подходи за сигурност в моделирането на данни. част 3

  2. SQL NOT оператор

  3. ОГРАНИЧЕНИЕ НА ВЪНШИЯ КЛЮЧ SQL:Най-доброто, лесно ръководство за начинаещи

  4. Ограничаване на свързан сървър до единично локално влизане (пример за T-SQL)

  5. HubSpot ODBC драйвер