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

Sådan fungerer Hadoop – Forstå, hvordan Hadoop fungerer

Søger du at vide, hvordan Hadoop faktisk gemmer og behandler enorme mængder data?

I denne artikel vil vi studere, hvordan Hadoop fungerer internt. Vi vil se, hvordan Hadoop opbevarer og behandler store datasæt. Artiklen forklarer i detaljer om, hvordan Hadoop fungerer. Artiklen giver først en kort introduktion til Hadoop.

Så vil vi se Hadoop-kernekomponenterne og Dæmonerne køre i Hadoop-klyngen. Artiklen forklarer derefter, hvordan Hadoop fungerer, der dækker alle dets kernekomponenter såsom HDFS, MapReduce og YARN.

Så lad os nu først se den korte introduktion til Hadoop.

Introduktion til Hadoop

Med de stigende Big data udviklede Apache Software Foundation i 2008 en open source-ramme kendt som Apache Hadoop, som er en løsning på alle big data-problemer.

Apache Hadoop er en ramme, der kan lagre og behandle enorme mængder af ustrukturerede data, der spænder i størrelse fra terabyte til petabyte. Det er et meget fejltolerant og yderst tilgængeligt system.

Hadoop gemmer en enorm mængde data på en distribueret måde i HDFS. Hadoop MapReduce er behandlingsenheden i Hadoop, som behandler dataene parallelt.

Hadoop YARN er en anden kernekomponent i Hadoop-rammeværket, som er ansvarlig for at administrere ressourcer blandt applikationer, der kører i klyngen, og planlægge opgaven.

Før vi studerer, hvordan Hadoop fungerer internt, lad os først se hovedkomponenterne og dæmonerne i Hadoop.

Komponenter og dæmoner i Hadoop

Hadoop består af tre hovedkomponenter, som er HDFS, MapReduce og YARN.

1. Hadoop HDFS

Det er lagerlaget til Hadoop. Hadoop Distributed File System gemmer data på tværs af forskellige noder i en klynge. Det opdeler dataene i blokke og gemmer dem på forskellige noder. Blokstørrelsen er 128 MB som standard . Vi kan konfigurere blokstørrelsen i henhold til vores krav.

2. Hadoop MapReduce

Det er behandlingslaget i Hadoop. Hadoop MapReduce behandler dataene lagret i Hadoop HDFS parallelt på tværs af forskellige noder i klyngen. Den opdeler opgaven indsendt af brugeren i den uafhængige opgave og behandler dem som underopgaver på tværs af råvarehardwaren.

3. Hadoop GARN

Det er ressource- og processtyringslaget i Hadoop. YARN er ansvarlig for at dele ressourcer mellem de programmer, der kører i klyngen, og planlægge opgaven i klyngen.

Disse er de tre kernekomponenter i Hadoop.

Dæmoner, der kører i Hadoop-klyngen

Der er nogle dæmoner, der kører på Hadoop-klyngen. Dæmoner er den lette proces, der kører i baggrunden.

Nogle dæmoner kører på Master-noden og nogle på Slave-noden. Lad os nu studere Hadoop-dæmonerne.

De vigtigste Hadoop-dæmoner er:

1. Mesterdæmoner

  • NameNode: Det er master Daemon i Hadoop HDFS. Det vedligeholder filsystemets navneområde. Den gemmer metadata om hver blok af filerne.
  • ResourceManager: Det er mesterdæmonen i YARN. Det arbitrerer ressourcer blandt alle de programmer, der kører i klyngen.

2. Slave Dæmoner

  • DataNode: DataNode er slavedæmonen af ​​Hadoop HDFS. Den kører på slavemaskiner. Den gemmer faktiske data eller blokke.
  • NodeManager: Det er slavedæmonen af ​​YARN. Den tager sig af alle de individuelle computerknuder i klyngen.

Hvordan virker Hadoop?

Hadoop gemmer og behandler dataene på en distribueret måde på tværs af klyngen af ​​råvarehardware. For at gemme og behandle data sender klienten dataene og programmet til Hadoop-klyngen.

Hadoop HDFS gemmer dataene, MapReduce behandler dataene lagret i HDFS, og YARN deler opgaverne og tildeler ressourcer.

Lad os nu se nærmere på disse komponenter.

1. HDFS

Dataene i Hadoop er gemt i Hadoop Distributed File System. Der kører to dæmoner i Hadoop HDFS, som er NameNode og DataNode.

a. NameNode

NameNode er masterdæmonen i HDFS. Den kører på masterknuderne. Det vedligeholder filsystemets navneområde. NameNode gemmer ikke de faktiske data. Det gemmer metadata, såsom information om blokke af filer, filtilladelser, blokeringsplaceringer osv.

NameNode administrerer DataNode og giver instruktioner til dem. NameNode modtager et hjerteslag fra DataNodes hvert 3. sekund, hvilket angiver, at DataNode er i live.

b. DataNode

DataNode er slavedæmonen i HDFS. DataNodes er slaveknuderne, der gemmer de faktiske forretningsdata. De er ansvarlige for at betjene klientens læse-/skriveanmodninger baseret på instruktionerne fra NameNode. DataNodes sender hjerteslagmeddelelser til NameNode for at sikre, at de er i live.

c. Sekundær NameNode

Det er en anden dæmon i Hadoop HDFS. Det er hjælpeknudepunktet for den primære NameNode. Secondary NameNode downloader redigeringslogfilerne og Fsimage-filen fra den primære NameNode og anvender periodisk redigeringslogfilerne på Fsimage .

Derefter sender den den opdaterede Fsimage-fil tilbage til NameNode. Så hvis den primære NameNode fejler, bruges det sidste gemte Fsimage på den sekundære NameNode til at gendanne filsystemets metadata.

Når klienten ønsker at læse eller skrive data til Hadoop HDFS, interagerer den først med NameNode. NameNode kontrollerer først for klientrettighederne, og hvis klienten har tilstrækkelige privilegier, så angiver NameNode adressen på de DataNodes, hvorfra klienten kan læse eller skrive data.

Klientens fil i HDFS er opdelt i blokke. Blokstørrelsen er som standard 128 MB. DataNode gemmer blokkene af filer. For at give fejltolerance opretter HDFS replikaer af blokke afhængigt af replikeringsfaktoren.

Som standard er replikeringsfaktoren 3, hvilket betyder, at 3 kopier af en blok er gemt i HDFS. HDFS gemmer replikaer af blokken på forskellige DataNodes ved at følge Rack Awareness-algoritmen.

Under fillæsning, hvis en DataNode går ned, angiver NameNode adressen på en anden DataNode, der indeholder en replika af blokken, hvorfra klienten kan læse sine data uden nedetid.

2. MapReduce

MapReduce er behandlingslaget i Hadoop. Den behandler dataene parallelt på tværs af flere maskiner i klyngen. Det fungerer ved at opdele opgaven i uafhængige underopgaver og udføre dem parallelt på tværs af forskellige DataNodes.

MapReduce behandler dataene i tofaset, det vil sige Kortfasen og Reducer-fasen . Input og output af begge faser er nøgleværdiparrene. Typen af ​​nøgle, værdipar er angivet af programmøren gennem InputFormat-klassen . Som standard bruges tekstinputformatet.

Programmøren specificerer de to funktioner, det vil sige kortfunktion og reducer funktionen . I kortfunktionen skriver programmøren forretningslogikken til behandling af dataene.

I funktionen Reducer skriver programmøren logikken til at opsummere og aggregere kortfunktionens mellemoutput og genererer outputtet.

Hadoop MapReduce fungerer

Når klienten ønsker at udføre nogen form for behandling af sine data i Hadoop-klyngen, gemmer den først dataene i Hadoop HDFS og skriver derefter MapReduce-programmet til behandling af dataene. Hadoop MapReduce fungerer som følger:

1. Hadoop deler jobbet op i opgaver af to typer, det vil sige kortlægge opgaver og reducere opgaver. YARN planlagde disse opgaver (som vi vil se senere i denne artikel). Disse opgaver kører på forskellige DataNodes.

2. Inputtet til MapReduce-jobbet er opdelt i stykker med fast størrelse, kaldet inputsplit.

3. Der oprettes én kortopgave, som kører en brugerdefineret kortfunktion for hver post i inputsplitningen. Disse kortopgaver kører på de datanoder, hvor inputdataene ligger.

4. Outputtet af kortopgaven er mellemoutput og skrives til den lokale disk.

5. De mellemliggende udgange af kortopgaver blandes og sorteres og sendes derefter til reducereren.

6. For en enkelt reduktionsopgave sendes det sorterede mellemoutput fra mapper til den node, hvor reduceringsopgaven kører. Disse udgange flettes derefter sammen og sendes derefter til den brugerdefinerede reduktionsfunktion.

7. Reduceringsfunktionen opsummerer outputtet fra mapperen og genererer outputtet. Reduktionens output er lagret på HDFS.

8. For flere reduktionsfunktioner angiver brugeren antallet af reduktionsanordninger. Når der er flere reduktionsopgaver, partitionerer kortopgaverne deres output og skaber én partition for hver reduktionsopgave.

GARN

YARN er ressourcestyringslaget i Hadoop. Den planlægger opgaven i Hadoop-klyngen og tildeler ressourcer til de applikationer, der kører i klyngen. Den er ansvarlig for at levere de beregningsressourcer, der er nødvendige for at udføre applikationerne.

Der kører to YARN-dæmoner i Hadoop-klyngen til at betjene YARN-kernetjenester. De er:

a. ResourceManager

Det er mesterdæmonen i YARN. Den kører på masterknuden pr. klynge for at administrere ressourcerne på tværs af klyngen. ResourceManageren har to hovedkomponenter, som er Scheduler og ApplicationManager.

Planlæggeren allokerer ressourcer til forskellige applikationer, der kører i klyngen.

ApplicationManager tager det job, som klienten har indsendt, og forhandler containeren til udførelse af den applikationsspecifikke ApplicationMaster og genstarter ApplicationMaster-beholderen ved fejl.

b. NodeManager

NodeManager er slavedæmonerne af YARN. Den kører på alle slaveknuderne i klyngen. Det er ansvarligt for at lancere og administrere containerne på noder. Containere udfører de applikationsspecifikke processer med et begrænset sæt ressourcer såsom hukommelse, CPU og så videre.

Når NodeManager starter, annoncerer den sig selv til ResourceManager. Det sender med jævne mellemrum et hjerteslag til ResourceManager. Det tilbyder ressourcer til klyngen.

c. ApplicationMaster

ApplicationMaster forhandler containere fra skemalæggere og sporer containerstatus og overvåger containerfremskridt.

En klient indsender en ansøgning til ResourceManager. ResourceManageren kontakter NodeManageren, der starter og overvåger computerbeholderne på noder i klyngen. Containeren udfører ApplicationMaster.

MapReduce-opgaven og ApplicationMaster kører i containere, som er planlagt af ResourceManager og administreret af NodeManagers.

Lad os nu opsummere, hvordan Hadoop fungerer internt:

1. HDFS opdeler klientinputdataene i blokke på 128 MB. Afhængigt af replikeringsfaktoren oprettes replikaer af blokke. Blokkene og deres replikaer er gemt på forskellige DataNodes.

2. Når alle blokke er gemt på HDFS DataNodes, kan brugeren behandle dataene.

3. For at behandle dataene sender klienten MapReduce-programmet til Hadoop.

4. ResourceManager planlagde derefter programmet indsendt af brugeren på individuelle noder i klyngen.

5. Når alle noder er færdige med behandlingen, skrives outputtet tilbage til HDFS.

Oversigt

I denne artikel har vi studeret hele Hadoops virkemåde. Jeg håber, efter at have læst denne artikel, at du forstår, hvordan Hadoop gemmer og behandler enorme mængder data.

Artiklen forklarer også, hvordan ressourcerne er planlagt blandt applikationerne i ressourcerne. Artiklen beskriver de store dæmoner, der kører i Hadoop-klyngen og kernekomponenterne i Hadoop.

Jeg håber, du forstår, hvordan Hadoop fungerer internt.

Fortsæt med at lære!


  1. Installer MongoDB Community Edition 4.0 på Linux

  2. Hvordan oprettes forbindelse til Atlas M0 (Free Tier) klynge korrekt via Java-driver?

  3. Hvordan kopierer jeg en database fra en MongoDB-server til en anden?

  4. Er redis på Heroku muligt uden en tilføjelse?