sql >> Database teknologi >  >> NoSQL >> HBase

HDFS Tutorial – En komplet introduktion til HDFS for begyndere

Vil du vide, hvordan Hadoop gemmer enorme mængder data på en pålidelig og fejltolerant måde?

I denne HDFS-tutorial skal vi diskutere en af ​​kernekomponenterne i Hadoop, det vil sige Hadoop Distributed File System (HDFS).

Først vil vi se en introduktion til Distributed FileSystem. Derefter vil vi studere Hadoop Distributed FileSystem. Artiklen forklarer årsagen til at bruge HDFS, HDFS-arkitektur og blokke i HDFS.

Artiklen samler også nogle af funktionerne i Hadoop HDFS. Du vil også blive klogere på hjerteslagmeddelelserne i Hadoop HDFS.

Denne HDFS-tutorial giver den komplette introduktionsvejledning til den mest pålidelige lagring Hadoop HDFS.

Lad os først starte med en introduktion til distribueret filsystem.

Distribueret filsystem

Når datasættet overstiger lagerkapaciteten for en enkelt maskine, bliver det obligatorisk at opdele datasættet på tværs af flere separate maskiner. Filsystemet, der administrerer data på tværs af netværket af maskiner, kaldes et distribueret filsystem .

Et distribueret filsystem er et filsystem, der giver os mulighed for at gemme data på tværs af flere maskiner eller noder i en klynge og tillader flere brugere at få adgang til data.

Da DFS er baseret på netværket, træder alle komplikationerne ved netværksprogrammering ind, hvilket gør et distribueret filsystem mere komplekst end det almindelige filsystem. En af de største udfordringer i DFS er at tolerere knudefejl uden at lide tab af data.

Hadoop kommer med et distribueret filsystem kaldet Hadoop Distributed Filesystem til lagring af enorme mængder data, samtidig med at det giver fejltolerance og høj tilgængelighed.

Nysgerrig efter at vide HDFS? Så lad os nu starte med HDFS-vejledningen.

HDFS-vejledning – Introduktion

Hadoop Distributed FileSystem (HDFS) er et java-baseret distribueret filsystem, der bruges i Hadoop til lagring af en stor mængde strukturerede eller ustrukturerede data, der spænder i størrelse fra GigaBytes til PetaBytes, på tværs af en klynge af råvarehardware. Det er den mest pålidelige lagring, der er kendt til dato på planeten.

I HDFS lagres data flere steder, så hvis nogen af ​​maskinerne fejler, kan data hentes fra en anden maskine, der indeholder kopien af ​​data. Den er derfor meget fejltolerant og sikrer intet datatab, selv i tilfælde af hardwarefejl.

Det er hovedkomponenten i Hadoop sammen med MapReduce, YARN og andre almindelige hjælpeprogrammer.

Den følger en Skriv-en gang-læs-mange filosofi, der forenkler datakohærens og muliggør high-throughput-adgang.

Hvorfor HDFS?

I dagens IT-verden ligger næsten 75 % af verdens data i Hadoop HDFS. Det skyldes følgende årsag:

  • HDFS gemmer data på tværs af råvarehardwaren, hvorfor der ikke er behov for avancerede maskiner til lagring af big data. Giver således økonomisk lagring til lagring af big data.
  • HDFS følger det mest effektive databehandlingsmønster, som er Write-Once-Read-Many-Times-mønsteret. Et datasæt genereret fra forskellige kilder kopieres, og derefter udføres de forskellige analyser på dette datasæt over tid. Så det er bedst til batchbehandling.
  • HDFS kan gemme data af enhver størrelse genereret fra enhver kilde i alle formater, enten strukturerede eller ustrukturerede.
  • Dens skriv-en-læs-mange-model lemper kravene til samtidighedskontrol. Dataene kan tilgås flere gange uden problemer med datasammenhæng.
  • HDFS arbejder på datalokalitetsantagelsen, at flytning af beregning til data er meget nemmere og hurtigere end at flytte data til beregningsenheden. HDFS letter lokalisering af behandlingslogik i nærheden af ​​dataene i stedet for at flytte data til applikationsområdet. Dette reducerer således overbelastning af netværket og den samlede ekspeditionstid.

Så lad os gå videre i denne HDFS tutorial, så lad os springe til HDFS Architecture.

HDFS-arkitektur

Hadoop DFS følger master-slave arkitektur. HDFS består af to typer knudepunkter, der er masterknude og slaveknudepunkter. Masternoden administrerer filsystemets navneområde, det vil sige, den gemmer metadataene om blokkene af filer.

Slaveknuderne gemmer brugerdataene og er ansvarlige for at behandle data baseret på instruktionen fra masternoden.

HDFS Master

Master i HDFS er midtpunktet i Hadoop HDFS. De er de avancerede maskiner, der gemmer metadata relateret til alle de filer, der er gemt i HDFS. Den administrerer og vedligeholder filsystemets navneområde og giver instruktioner til slaveknuderne.

NameNode er masterknudepunktet i Hadoop HDFS.

HDFS-slave

Slavenoder er ansvarlige for at opbevare de faktiske forretningsdata. De er de normale konfigurationsmaskiner (varehardware), der gemmer og behandler datasættene efter instruktion fra masterknuden.

Datanoderne er slaveknuderne i Hadoop HDFS.

HDFS NameNode

NameNode er masterknuden. Det administrerer filsystemnavne-operationer som åbning/lukning, omdøbning af filer og mapper. NameNode knytter datablokke til DataNodes og registrerer hver ændring, der er foretaget i filsystemets navneområde.

HDFS DataNode

DataNodes er slavenoder, der håndterer læse/skriveanmodninger fra HDFS-klienter. DataNodes opretter, sletter og replikerer datablokke i henhold til instruktionerne fra den styrende navneknude.

Gad vide, hvordan data bliver gemt i HDFS?

Bloker i HDFS

HDFS opdeler filerne i blokstørrelser, kaldet datablokke. Disse blokke er gemt på tværs af flere DataNodes i klyngen. Standardblokstørrelsen er 128 MB. Vi kan konfigurere standardblokstørrelsen, afhængigt af klyngekonfigurationen.

For klyngen med avancerede maskiner kan blokstørrelsen holdes stor (som 256 Mb eller mere). For klyngen med maskiner med konfiguration som 8 Gb RAM, kan blokstørrelsen holdes mindre (f.eks. 64 Mb).

HDFS opretter også replikaer af blokke baseret på replikeringsfaktoren (et tal, der definerer det samlede antal kopier af en blok af en fil). Som standard er replikeringsfaktoren 3. Det betyder, at 3 kopier af hver blok oprettes og gemmes på tværs af flere noder.

Hvis nogen af ​​DataNode fejler, hentes blokken fra en anden DataNode, der indeholder en replika af en blok. Dette gør HDFS fejltolerance.

Har du tænkt over, hvordan NameNode opdager DataNode-fejl?

Datanodefejl

Alle DataNodes i Hadoop HDFS sender kontinuerligt en lille hjerteslag-besked (signaler) til NameNode for at fortælle "I am Alive" hvert 3. sekund.

Hvis NameNode ikke modtager en hjerteslagsmeddelelse fra en bestemt DataNode i mere end 10 minutter, så betragter den DataNode som død og begynder at oprette en replika af blokke, der var tilgængelige på den DataNode.

NameNode instruerer de DataNodes, der indeholder en kopi af disse data, om at replikere disse data på andre DataNodes for at afbalancere replikeringen. På denne måde opdager NameNode DataNode-fejl.

Vil du vide, hvordan NameNode placerer replikaer på forskellige DataNode? Lad os udforske rack-bevidsthed i HDFS for at få svar på ovenstående spørgsmål.

Rack Awareness i HDFS

Hadoop HDFS gemmer data på tværs af klyngen af ​​råvarehardware. For at give fejltolerance oprettes replikaer af blokke og gemmes på forskellige DataNodes.

NameNode placerer replikaerne af blokke på flere DataNodes ved at følge Rack Awareness-algoritmen for at sikre intet datatab, selvom DataNode eller hele racket går ned. NameNode placerer den første replika på den nærmeste DataNode.

Den gemmer den anden replika på en anden DataNode på det samme rack og den tredje replika på en anden DataNode på et andet rack.

Hvis replikeringsfaktoren er 2, placerer den den anden replika på en anden DataNode på et andet rack, så hvis et komplet rack går ned, så vil systemet også være meget tilgængeligt.

Hovedformålet med en rack-bevidst replikaplaceringspolitik er at forbedre fejltolerance, datapålidelighed og tilgængelighed.

Dernæst i HDFS-selvstudiet diskuterer vi nogle nøglefunktioner i Hadoop HDFS.

Vigtige funktioner i Hadoop HDFS

1. Høj tilgængelighed

Det er et meget tilgængeligt filsystem. I dette filsystem bliver data replikeret blandt noderne i Hadoop-klyngen ved at skabe en replika af blokkene på de andre slaver, der er til stede i HDFS-klyngen. Så hver gang en bruger ønsker at få adgang til disse data, kan de få adgang til deres data fra slaverne, som indeholder dets blokke.

2. Fejltolerance

Fejltolerance i Hadoop HDFS er et systems arbejdsstyrke under ugunstige forhold. Den er meget fejltolerant. Hadoop framework opdeler data i blokke.

Derefter opretter den flere kopier af blokke på forskellige maskiner i klyngen. Så når en hvilken som helst maskine i klyngen går ned, kan en klient nemt få adgang til deres data fra den anden maskine, som indeholder den samme kopi af datablokke.

3. Høj pålidelighed

HDFS giver pålidelig datalagring. Den kan gemme data i intervallet 100'er af petabytes. HDFS gemmer data pålideligt på en klynge. Det opdeler dataene i blokke. Derefter gemmer Hadoop-rammen disse blokke på noder til stede i klyngen.

HDFS gemmer også data pålideligt ved at skabe en replika af hver eneste blok, der er til stede i klyngen. Giver derfor fejltolerancefacilitet.

4. Replikering

Datareplikering er en unik egenskab ved HDFS. Replikering løser problemet med datatab i en ugunstig tilstand som hardwarefejl, nedbrud af noder osv. HDFS opretholder replikeringsprocessen med et regelmæssigt tidsinterval.

Det bliver også ved med at skabe replikaer af brugerdata på forskellige maskiner, der findes i klyngen. Så når en node går ned, kan brugeren få adgang til dataene fra andre maskiner. Der er således ingen mulighed for at miste brugerdata.

5. Skalerbarhed

Det gemmer data på flere noder i klyngen. Så når kravene stiger, kan du skalere klyngen. To skalerbarhedsmekanismer er tilgængelige i HDFS:Vertikal og horisontal skalerbarhed.

6. Distribueret lager

HDFS-funktioner opnås via distribueret lagring og replikering. Det gemmer data på en distribueret måde på tværs af noderne. I Hadoop er data opdelt i blokke og lagret på de noder, der er til stede i klyngen.

Derefter opretter den replikaen af ​​hver eneste blok og lager på andre noder. Når den enkelte maskine i klyngen går ned, kan vi nemt få adgang til vores data fra de andre noder, som indeholder dens replika.

Dernæst i HDFS-selvstudiet diskuterer vi nogle nyttige HDFS-handlinger.

HDFS-drift

Hadoop HDFS har mange ligheder med Linux-filsystemet. Vi kan udføre næsten alle de handlinger, vi kan gøre med et lokalt filsystem som at oprette en mappe, kopiere filen, ændre tilladelser osv.

Det giver også forskellige adgangsrettigheder som at læse, skrive og udføre til brugere, grupper og andre.

1. Læs Operation

Når HDFS-klienten ønsker at læse en fil fra HDFS, interagerer klienten først med NameNode. NameNode er det eneste sted, der gemmer metadata. NameNode angiver adressen på de slaver, hvor data gemmes. Derefter interagerer klienten med de specificerede DataNodes og læser dataene derfra.

HDFS-klienten interagerer med det distribuerede filsystem-API. Derefter sender den en anmodning til NameNode om at sende en blokeringsplacering. NameNode tjekker først, om klienten har tilstrækkelige rettigheder til at få adgang til dataene eller ej? Derefter vil NameNode dele adressen, hvor data er gemt i DataNode.

NameNode giver en token til klienten, som den viser til DataNode for at læse filen af ​​sikkerhedsmæssige årsager. Når en klient går til DataNode for at læse filen, efter at have kontrolleret tokenet, tillader DataNode klienten at læse den pågældende blok.

Efter at klienten åbner inputstrømmen og begynder at læse data fra de angivne DataNodes. På denne måde læser klienten data direkte fra DataNode.

2. Skriveoperation

For at skrive en fil interagerer klienten først med NameNode. HDFS NameNode angiver adressen på den DataNode, som data skal skrives på af klienten.

Når klienten er færdig med at skrive blokken, begynder DataNode at replikere blokken til en anden DataNode. Derefter kopierer den blokken til den tredje DataNode. Når den først har oprettet den nødvendige replikering, sender den en endelig bekræftelse til klienten. Godkendelsen er den samme som læseoperationen.

Klienten sender bare 1 kopi af data uanset vores replikeringsfaktor, mens DataNodes replikerer blokkene. Skrivning af fil er ikke dyrt, fordi det skriver flere blokke parallelt med flere blokke på flere DataNodes.

Oversigt

I HDFS tutorial konklusion kan vi sige, at Hadoop HDFS gemmer data på en distribueret måde på tværs af klyngen af ​​råvarehardware.

Hadoop HDFS er et yderst pålideligt, fejltolerant og yderst tilgængeligt lagringssystem kendt til dato. Den følger master-slave-arkitekturen, hvor NameNode er master-noden, og DataNodes er slave-noderne.

HDFS opdeler også klientens inputfil i blokke på størrelse 128 MB, som vi kan konfigurere efter vores krav. Den gemmer også replikaer af blokke for at give fejltolerance.

NameNode følger rack-bevidsthedspolitik for at placere replikaer på DataNode for at sikre, at ingen data går tabt under maskinfejl eller hardwarefejl. Derudover sender DataNode en hjerteslagmeddelelse til NameNode for at sikre, at de er i live.

Under fillæsning eller skrivning interagerer klienten først med NameNode.

Hadoop HDFS er skalerbart, pålideligt, distribueret, fejltolerant og yderst tilgængeligt lagersystem til lagring af big data.


  1. Redis Key udløbsmeddelelse med Jedis

  2. Nogen detaljerede og specifikke grunde til hvorfor MongoDB er meget hurtigere end SQL DB'er?

  3. Sortering efter virtuelt felt i mongoDB (mongoose)

  4. Opdater dokumenter i MongoDB