Hva er Hadoop? ArchiTektur, økosystem og komponenter

⚡ Smart oppsummering

Apache Hadoop er et åpen kildekode-rammeverk som lagrer enorme datasett på tvers av klynger av standardmaskiner og flytter behandlingslogikken til dataene, slik at analysen skaleres ved å legge til billige noder i stedet for større servere.

  • 🔘 Kjernemoduler: HDFS lagrer blokkene, MapReduce behandler dem, og YARN planlegger klyngeressurser fra Hadoop 2.x og utover.
  • ☑️ Datalokalitet: Kompilert prosesseringslogikk reiser til noden som holder blokken, slik at det forbrukes mye mindre nettverksbåndbredde.
  • Økosystem: Hive, HBase, Mahout, Sqoop, Flume og ZooKeeper utvider kjernen med SQL, NoSQL, inntak og koordinering.
  • 🧪 Master-slave-oppsett: En navnenode tracks navneområdemetadata mens DataNodes holder blokkene og rapporterer tilbake tilstanden deres.
  • 🛠️ Feiltoleranse: Hver blokk replikeres på tvers av noder, slik at en enkelt maskin som har sviktet aldri stopper en kjørende jobb.
  • ⚠️ Nettverkstopologi: Hadoop modellerer klyngen som et tre av datasentre, rack og noder for å holde trafikken lokal.

Hva er Hadoop-arkitektur, økosystem og komponenter

Hva er Hadoop?

Apache Hadoop er et programvarerammeverk med åpen kildekode som brukes til å utvikle databehandlingsapplikasjoner som kjøres i et distribuert datamiljø.

Applikasjoner bygget med Hadoop kjøres på store datasett fordelt på tvers av klynger av standarddatamaskiner. Standarddatamaskiner er billige og allment tilgjengelige. Disse er hovedsakelig nyttige for å oppnå større beregningskraft til lav kostnad.

I likhet med data som ligger i et lokalt filsystem i et personlig datamaskinsystem, ligger data i Hadoop i et distribuert filsystem som kalles Hadoop distribuert filsystemProsesseringsmodellen er basert på 'Datalokalitet' konsept, hvor beregningslogikk sendes til klyngenodene (serverne) som inneholder dataene. Denne beregningslogikken er ganske enkelt en kompilert versjon av et program skrevet i et høynivåspråk som f.eks. JavaEt slikt program behandler data lagret i Hadoop HDFS.

Vet du? En dataklynge består av et sett med flere prosessorenheter (lagringsdisk + prosessor) som er koblet til hverandre og fungerer som ett enkelt system.

Versjon 3.5.0, publisert 2. april 2026, er den nåværende stabile utgivelsen; 3.4-linjen mottar fortsatt vedlikeholdsoppdateringer.

Hadoop-økosystem og komponenter

Diagrammet nedenfor viser de ulike komponentene i Hadoop-økosystemet, gruppert etter jobben hver enkelt gjør – lagring, prosessering og spørrings-, inntaks- og koordineringsverktøyene rundt dem.

Hadoop-økosystemdiagram som viser HDFS, MapReduce og de omkringliggende Apache-prosjektene

Apache Hadoop består av to delprosjekter –

  1. Hadoop MapReduce: MapReduce er en beregningsmodell og programvareramme for å skrive applikasjoner som kjøres på Hadoop. Disse MapReduce-programmene er i stand til å behandle enorme data parallelt på store klynger av beregningsnoder.
  2. HDFS (Hadoop distribuert filsystem): HDFS tar seg av lagringsdelen av Hadoop-applikasjoner. MapReduce-applikasjoner bruker data fra HDFS. HDFS oppretter flere replikaer av datablokker og distribuerer dem på beregningsnoder i en klynge. Denne distribusjonen muliggjør pålitelige og ekstremt raske beregninger.

Nåværende utgivelser leverer to ytterligere kjernemoduler. Hadoop GARN, lagt til i Hadoop 2.x, planlegger arbeid på klyngen, og Hadoop Common holder den delte Java biblioteker som alle moduler er avhengige av. YARN er det som lar motorer som Spark, Tez og Flink kjører side om side med MapReduce.

Selv om Hadoop er mest kjent for MapReduce og det distribuerte filsystemet HDFS, brukes begrepet også om en familie av relaterte prosjekter som faller inn under paraplyen distribuert databehandling og storskala databehandling. Andre Hadoop-relaterte prosjekter hos Apache inkluderer Hive, HBase, Mahout, Sqoop, Flumeog Dyrepasser.

Hadoop Architecture

Hadoop har en master-slave-arkitektur for datalagring og distribuert databehandling ved hjelp av MapReduce og HDFS-metoder. Diagrammet nedenfor plasserer disse rollene side om side, med lagringslaget på den ene siden og behandlingslaget på den andre.

Hadoop-arkitekturdiagram på høyt nivå som viser NameNode, DataNodes, masternode og slavenoder

Hadoop på høyt nivå Architecture

NavnNode

NameNode lagrer metadataene for hver fil og katalog som brukes i navnerommet, inkludert hvilke blokker som utgjør hver fil og hvor disse blokkene befinner seg.

DataNode

En DataNode administrerer tilstanden til en HDFS-node og lar deg samhandle med blokkene den lagrer, og rapporterer tilbake til NameNode med periodiske blokkrapporter og hjerteslag.

Hovednode

Masternoden lar deg utføre parallell behandling av data ved hjelp av Hadoop MapReduce.

Slavenode

Slavenodene er de ekstra maskinene i Hadoop-klyngen som lar deg lagre data og kjøre komplekse beregninger. Dessuten kjører hver slavenode en oppgave.Tracker og en DataNode. Dette lar deg synkronisere prosessene med NameNode og JobTrachenholdsvis ker.

I Hadoop kan master- eller slavesystemer settes opp i skyen eller lokalt.

En navnebemerkning: JobbTracker og OppgaveTracker tilhører førstegenerasjons MapReduce-kjøretidssystemet (MRv1). Fra Hadoop 2.x og utover deler YARN oppgavene sine mellom en klyngeomfattende Ressursadministratoren NodeManager per arbeider, og én ApplicationMaster per jobb. NameNode og DataNode er uendret.

Funksjoner i Hadoop

Egnet for stordataanalyse

As Store data Hadoop-klynger har en tendens til å være distribuerte og ustrukturerte av natur, og er best egnet for analyse av stordata. Siden det er behandlingslogikken (ikke de faktiske dataene) som flyter til datanodene, forbrukes mindre nettverksbåndbredde. Dette kalles datalokalitetskonsept, og det bidrar til å øke effektiviteten til Hadoop-baserte applikasjoner.

skalerbarhet

Hadoop-klynger kan enkelt skaleres til enhver grad ved å legge til flere klyngenoder, og dermed tillate vekst av stordata. Skalering krever heller ikke endringer i applikasjonslogikken.

Feiltoleranse

Hadoop-økosystemet har en mulighet til å replikere inndataene til andre klyngenoder. På den måten, i tilfelle en klyngenodefeil, kan databehandlingen fortsatt fortsette ved å bruke data lagret på en annen klyngenode. HDFS beholder tre kopier av hver blokk som standard, en verdi satt av dfs.replication egenskapen, og NameNode replikerer enhver blokk som faller under dette antallet på nytt.

Nettverkstopologi i Hadoop

Nettverkets topologi (arrangement) påvirker ytelsen til Hadoop-klyngen etter hvert som klyngestørrelsen vokser. I tillegg til ytelse må man også være oppmerksom på høy tilgjengelighet og håndtering av feil. For å oppnå dette bruker Hadoop-klyngedannelse nettverkstopologi.

Treet nedenfor viser hvordan denne ordningen er modellert, fra datasenteret og ned til nodene i hvert rack.

Hadoop-nettverkstopologitre med datasenter, rack og noder som brukes til å måle avstand mellom noder

Vanligvis er nettverksbåndbredde en viktig faktor å vurdere når man danner et nettverk. Men siden det kan være vanskelig å måle båndbredde, er et nettverk i Hadoop representert som et tre, og avstanden mellom nodene i dette treet (antall hopp) anses som en viktig faktor i dannelsen av en Hadoop-klynge. Her er avstanden mellom to noder lik summen av avstandene deres til deres nærmeste felles forfader.

En Hadoop-klynge består av et datasenter, racket og noden som faktisk utfører jobber. Her består datasenteret av rack, og et rack består av noder. Nettverksbåndbredden som er tilgjengelig for prosesser varierer avhengig av prosessenes plassering. Det vil si at den tilgjengelige båndbredden blir mindre etter hvert som vi beveger oss bort fra-

  • Prosesser på samme node
  • Ulike noder på samme stativ
  • Noder på forskjellige stativer i samme datasenter
  • Noder i forskjellige datasentre

Rackbevissthet bruker det samme treet: HDFS plasserer replikaer på mer enn ett rack, så å miste en rack-svitsj tar ikke med seg alle kopiene av dataene.

Spørsmål og svar

Versjon 3.5.0, publisert 2. april 2026, er den første stabile utgivelsen av 3.5-linjen og det vanlige valget for nye klynger. 3.4-linjen opprettholdes fortsatt hvis du trenger en gren som har vært etablert lenger.

Ja. Hadoop støtter frittstående modus, som kjører som én Java prosess uten daemoner, og pseudodistribuert modus, der hver daemon kjører separat på én vert. Begge er ment for læring og testing, ikke produksjon.

Modeller som er trent på jobbhistorikk, forutsier kjøretider, anbefaler containerstørrelser og flagger dataforskyvning før en jobb er fullført. Lignende modeller skanner NameNode- og DataNode-logger for å oppdage sviktende disker og «hot racks» tidligere enn terskelvarsler gjør.

Den fremskynder standardteksten: mapper- og reduksjonsskjeletter, konfigurasjon av jobbdrivere og XML-egenskapsblokker. Sjekk alltid generert kode mot API-versjonen du kjører, fordi Copilot blander de gamle mapred- og nyere mapreduce-pakkene.

Tre som standard, kontrollert av dfs.replication. Én replika forblir på skrivenoden, en annen går til et annet rack, og en tredje blir med i det andre racket. NameNode gjenoppretter enhver blokk som faller under målet.

Det er fortsatt vanlig at batchlagring i petabyte-skala må forbli på eid maskinvare. Mesteparten av den nye prosesseringen er skrevet for Spark eller Flink, som kjører på YARN, slik at HDFS ofte overlever som lagringslag etter at MapReduce er pensjonert.

YARN er ressursbehandleren som ble introdusert i Hadoop 2.x. Den skiller klyngeplanlegging fra MapReduce-programmeringsmodellen, som fjernet jobben.Tracker flaskehals og la motorer som Spark, Tez og Flink deler én klynge.

Java er innebygd. Hadoop Streaming lar enhver kjørbar fil som leser standard input fungere som en mapper eller reducer, så Python, Ruby, Perl og C++ er alle brukbare, og Hive legger til et SQL-lignende lag over de samme dataene.

Oppsummer dette innlegget med: