HBase
 sql >> база данни >  >> NoSQL >> HBase

HDFS урок – пълно въведение в HDFS за начинаещи

Искате да знаете как Hadoop съхранява огромни количества данни по надежден и устойчив на грешки начин?

В този урок за HDFS ще обсъдим един от основните компоненти на Hadoop, тоест Hadoop Distributed File System (HDFS).

Първо, ще видим въведение в разпределената файлова система. След това ще проучим разпределената файлова система на Hadoop. Статията обяснява причината за използване на HDFS, HDFS архитектура и блокове в HDFS.

Статията също така включва някои от функциите на Hadoop HDFS. Освен това ще научите за съобщенията за сърдечния ритъм в Hadoop HDFS.

Този урок за HDFS предоставя пълното въвеждащо ръководство за най-надеждното хранилище на Hadoop HDFS.

Нека първо започнем с въведение в разпределената файлова система.

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

Когато наборът от данни надвишава капацитета за съхранение на една машина, тогава става задължително да се раздели наборът от данни между няколко отделни машини. Файловата система, която управлява данните в мрежата от машини, се нарича разпределена файлова система .

Разпределената файлова система е файлова система, която ни позволява да съхраняваме данни на множество машини или възли в клъстер и позволява на множество потребители да имат достъп до данни.

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

Hadoop идва с разпределена файлова система, наречена Hadoop Distributed Filesystem за съхраняване на огромни количества данни, като същевременно осигурява отказоустойчивост и висока наличност.

Любопитни ли сте да знаете HDFS? И така, нека започнем с урока за HDFS.

Урок за HDFS – Въведение

Hadoop Distributed FileSystem (HDFS) е базирана на Java разпределена файлова система, използвана в Hadoop за съхранение на голямо количество структурирани или неструктурирани данни, вариращи по размер от GigaBytes до PetaBytes, в клъстер от стандартен хардуер. Това е най-надеждното хранилище, известно досега на планетата.

В HDFS данните се съхраняват на множество места, така че ако някоя от машините се повреди, тогава данните могат да бъдат извлечени от друга машина, съдържаща копие на данните. По този начин той е много устойчив на грешки и гарантира, че няма загуба на данни дори в случай на повреда на хардуера.

Това е основният компонент на Hadoop, заедно с MapReduce, YARN и други общи помощни програми.

Следва Write-Once-Read-Many философия, която опростява съгласуваността на данните и позволява високопроизводителен достъп.

Защо HDFS?

В днешния ИТ свят почти 75% от световните данни се намират в Hadoop HDFS. Това се дължи на следната причина:

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

И така, продължавайки напред в този урок за HDFS, нека преминем към HDFS архитектура.

HDFS архитектура

Hadoop DFS следва главен-подчинен архитектура. HDFS се състои от два типа възли, които са главен възел и подчинени възли. Главният възел управлява пространството от имена на файловата система, тоест съхранява метаданните за блоковете файлове.

Подчинените възли съхраняват потребителските данни и са отговорни за обработката на данните въз основа на инструкциите от главния възел.

HDFS Master

Master in HDFS е централната част на Hadoop HDFS. Те са машини от висок клас, които съхраняват метаданни, свързани с всички файлове, съхранявани в HDFS. Той управлява и поддържа пространството от имена на файловата система и предоставя инструкции на подчинените възли.

NameNode е главният възел в Hadoop HDFS.

HDFS Slave

Подчинените възли са отговорни за съхраняването на действителните бизнес данни. Те са нормалните машини за конфигуриране (стоков хардуер), които съхраняват и обработват наборите от данни след инструкции от главния възел.

DataNodes са подчинените възли в Hadoop HDFS.

HDFS NameNode

NameNode е главният възел. Той управлява операции с пространството от имена на файловата система като отваряне/затваряне, преименуване на файлове и директории. NameNode съпоставя блокове от данни в DataNodes и записва всяка промяна, направена в пространството от имена на файловата система.

HDFS DataNode

DataNodes са подчинените възли, които обработват заявки за четене/запис от HDFS клиенти. DataNodes създава, изтрива и репликира блокове от данни съгласно инструкциите от възела на управляващото име.

Чудите се как данните се съхраняват в HDFS?

Блокове в HDFS

HDFS разделя файловете на блокове с размери, наречени блокове данни. Тези блокове се съхраняват в множество DataNodes в клъстера. Размерът на блока по подразбиране е 128 MB. Можем да конфигурираме размера на блока по подразбиране в зависимост от конфигурацията на клъстера.

За клъстера с машини от висок клас, размерът на блока може да се запази голям (като 256 Mb или повече). За клъстера с машини с конфигурация като 8Gb RAM, размерът на блока може да се запази по-малък (например 64 Mb).

Също така, HDFS създава реплики на блокове въз основа на коефициента на репликация (число, което дефинира общия брой копия на блок от файл). По подразбиране коефициентът на репликация е 3. Това означава, че 3 копия на всеки блок се създават и съхраняват в множество възли.

Ако някой от DataNode се провали, тогава блокът се извлича от друг DataNode, съдържащ реплика на блок. Това прави HDFS толерантност към грешки.

Мислили ли сте как NameNode открива повреда на DataNode?

Отказ на възела на данни

Всички DataNodes в Hadoop HDFS непрекъснато изпращат малко сърдечно съобщение (сигнали) до NameNode, за да кажат „Аз съм жив“ на всеки 3 секунди.

Ако NameNode не получи сърдечно съобщение от някой конкретен DataNode за повече от 10 минути, тогава той счита, че DataNode е мъртъв и започва да създава реплика на блокове, които са били налични на този DataNode.

NameNode инструктира DataNodes, съдържащ копие на тези данни, да репликират тези данни на други DataNodes, за да балансират репликацията. По този начин NameNode открива повреда на DataNode.

Искате ли да знаете как NameNode поставя реплики на различни DataNode? Нека проучим осведомеността за стелажите в HDFS, за да получим отговор на горния въпрос.

Осведомяване на стелажите в HDFS

Hadoop HDFS съхранява данни в клъстера на стоков хардуер. За осигуряване на отказоустойчивост се създават реплики на блокове и се съхраняват на различни DataNodes.

NameNode поставя репликите на блокове на множество DataNode, като следва алгоритъма за осведомяване на Rack Awareness, за да гарантира, че няма загуба на данни, дори ако DataNode или целият багажник се повреди. NameNode поставя първата реплика на най-близкия DataNode.

Той съхранява втората реплика на различен DataNode в една и съща стойка, а третата реплика на различен DataNode в различна стойка.

Ако коефициентът на репликация е 2, тогава той поставя втората реплика на различен DataNode на различен багажник, така че ако целият багажник се повреди, системата също ще бъде много достъпна.

Основната цел на политиката за поставяне на копия с информация за шкаф е да подобри толерантността на грешки, надеждността на данните и наличността.

След това в урока за HDFS обсъждаме някои ключови характеристики на Hadoop HDFS.

Важни характеристики на Hadoop HDFS

1. Висока наличност

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

2. Толерантност на грешки

Толерантността на грешки в Hadoop HDFS е работната сила на системата в неблагоприятни условия. Той е силно устойчив на грешки. Hadoop Framework разделя данните на блокове.

След това създава множество копия на блокове на различни машини в клъстера. Така че, когато някоя машина в клъстера изпадне, клиентът може лесно да получи достъп до данните си от другата машина, която съдържа същото копие на блокове от данни.

3. Висока надеждност

HDFS осигурява надеждно съхранение на данни. Може да съхранява данни в диапазона от 100 петабайта. HDFS съхранява данни надеждно в клъстер. Той разделя данните на блокове. След това рамката на Hadoop съхранява тези блокове на възли, присъстващи в клъстера.

HDFS също така съхранява данни надеждно, като създава реплика на всеки блок, присъстващ в клъстера. Следователно осигурява толерантност на грешки.

4. Репликация

Репликацията на данни е уникална характеристика на HDFS. Репликацията решава проблема със загубата на данни в неблагоприятно състояние като хардуерна повреда, срив на възли и др. HDFS поддържа процеса на репликация на редовен интервал от време.

Той също така продължава да създава реплики на потребителски данни на различни машини, присъстващи в клъстера. Така че, когато някой възел се повреди, потребителят може да получи достъп до данните от други машини. По този начин няма възможност за загуба на потребителски данни.

5. Мащабируемост

Той съхранява данни на множество възли в клъстера. Така че, когато изискванията се увеличат, можете да мащабирате клъстера. В HDFS са налични два механизма за мащабируемост:вертикална и хоризонтална мащабируемост.

6. Разпределено съхранение

Функциите на HDFS се постигат чрез разпределено съхранение и репликация. Той съхранява данни по разпределен начин между възлите. В Hadoop данните се разделят на блокове и се съхраняват на възлите, присъстващи в клъстера.

След това той създава репликата на всеки блок и съхранява на други възли. Когато единичната машина в клъстера се срине, можем лесно да получим достъп до данните си от другите възли, които съдържат нейната реплика.

След това в урока за HDFS обсъждаме някои полезни HDFS операции.

HDFS операция

Hadoop HDFS има много прилики с файловата система на Linux. Можем да извършим почти всички операции, които можем да направим с локална файлова система, като например създаване на директория, копиране на файла, промяна на разрешенията и т.н.

Освен това предоставя различни права за достъп като четене, запис и изпълнение на потребители, групи и други.

1. Прочетете операция

Когато HDFS клиентът иска да прочете всеки файл от HDFS, клиентът първо взаимодейства с NameNode. NameNode е единственото място, което съхранява метаданни. NameNode указва адреса на подчинените, където се съхраняват данните. След това клиентът взаимодейства с посочените DataNodes и чете данните от там.

HDFS клиентът взаимодейства с API на разпределената файлова система. След това изпраща заявка до NameNode да изпрати местоположение на блока. NameNode първо проверява дали клиентът има достатъчно привилегии за достъп до данните или не? След това NameNode ще сподели адреса, на който се съхраняват данните в DataNode.

NameNode предоставя токен на клиента, който показва на DataNode за четене на файла с цел сигурност. Когато клиент отиде до DataNode за четене на файла, след проверка на токена, DataNode позволява на клиента да прочете този конкретен блок.

След това клиентът отваря входния поток и започва да чете данни от посочените DataNodes. По този начин клиентът чете данни директно от DataNode.

2. Операция за писане

За писане на файл клиентът първо взаимодейства с NameNode. HDFS NameNode предоставя адреса на DataNode, на който данните трябва да бъдат записани от клиента.

Когато клиентът завърши записването на блока, DataNode започва да репликира блока в друг DataNode. След това копира блока в третия DataNode. След като създаде необходимата репликация, той изпраща окончателно потвърждение на клиента. Удостоверяването е същото като операцията за четене.

Клиентът просто изпраща 1 копие на данните, независимо от нашия коефициент на репликация, докато DataNodes репликират блоковете. Записването на файл не е скъпо, защото записва множество блокове успоредно множество блокове на няколко DataNodes.

Резюме

В заключението на урока за HDFS можем да кажем, че Hadoop HDFS съхранява данни по разпределен начин в клъстера от хардуер за стоки.

Hadoop HDFS е високонадеждна, устойчива на грешки и високодостъпна система за съхранение, известна до момента. Той следва архитектурата главен-подчинен, където NameNode е главният възел, а DataNodes са подчинените възли.

Също така, HDFS разделя входния файл на клиента на блокове с размер 128 MB, които можем да конфигурираме според нашите изисквания. Той също така съхранява реплики на блокове, за да осигури толерантност на грешки.

NameNode следва политиката за информираност на стелажите за поставяне на реплики на DataNode, за да гарантира, че няма загуба на данни по време на повреда на машината или хардуерна повреда. В допълнение, DataNodes изпраща съобщение за пулс до NameNode, за да се увери, че са живи.

По време на четене или запис на файл, клиентът първо взаимодейства с NameNode.

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Архитектура на Apache Hadoop – HDFS, YARN &MapReduce

  2. HBase примерна таблица

  3. HDFS Disk Balancer Въведение, операции и функции

  4. Hadoop Partitioner – Научете основите на MapReduce Partitioner

  5. Въведение в Apache HBase Snapshots