Vad är Hadoop? ArchiTektur, ekosystem och komponenter

⚡ Smart sammanfattning

Apache Hadoop är ett ramverk med öppen källkod som lagrar enorma datamängder över kluster av standardmaskiner och flyttar bearbetningslogiken till data, så analysen skalas upp genom att lägga till billiga noder snarare än större servrar.

  • 🔘 Kärnmoduler: HDFS lagrar blocken, MapReduce bearbetar dem och YARN schemalägger klusterresurser från Hadoop 2.x och framåt.
  • ☑️ Datalokalitet: Kompilerad bearbetningslogik färdas till noden som håller blocket, så att betydligt mindre nätverksbandbredd förbrukas.
  • Ekosystem: Hive, HBase, Mahout, Sqoop, Flume och ZooKeeper utökar kärnan med SQL, NoSQL, inmatning och koordinering.
  • 🧪 Master-slave-layout: En namnnod tracks namnrymdsmetadata medan DataNodes lagrar blocken och rapporterar tillbaka deras tillstånd.
  • 🛠️ Feltolerans: Varje block replikeras över noder, så en enda felaktig maskin stoppar aldrig ett pågående jobb.
  • ⚠️ Nätverkstopologi: Hadoop modellerar klustret som ett träd av datacenter, rack och noder för att hålla trafiken lokal.

Vad är Hadoop-arkitektur, ekosystem och komponenter

Vad är Hadoop?

Apache Hadoop är ett ramverk för öppen källkod som används för att utveckla databehandlingsapplikationer som körs i en distribuerad datormiljö.

Applikationer byggda med Hadoop körs på stora datamängder distribuerade över kluster av standarddatorer. Standarddatorer är billiga och allmänt tillgängliga. Dessa är främst användbara för att uppnå större beräkningskraft till låg kostnad.

I likhet med data som finns i ett lokalt filsystem i en persondator, finns data i Hadoop i ett distribuerat filsystem som kallas Hadoop distribuerat filsystemBearbetningsmodellen är baserad på 'Datalokalitet' koncept, där beräkningslogik skickas till klusternoderna (servrarna) som innehåller data. Denna beräkningslogik är helt enkelt en kompilerad version av ett program skrivet i ett högnivåspråk som JavaEtt sådant program bearbetar data som lagras i Hadoop HDFS.

Vet du? Ett datorkluster består av en uppsättning flera processorenheter (lagringsdisk + processor) som är anslutna till varandra och fungerar som ett enda system.

Version 3.5.0, publicerad den 2 april 2026, är den nuvarande stabila utgåvan; 3.4-serien får fortfarande underhållsuppdateringar.

Hadoop-ekosystem och komponenter

Diagrammet nedan visar de olika komponenterna i Hadoop-ekosystemet, grupperade efter det jobb var och en utför – lagring, bearbetning och verktygen för fråge-, inmatnings- och koordinering kring dem.

Hadoop-ekosystemdiagram som visar HDFS, MapReduce och de omgivande Apache-projekten

Apache Hadoop består av två delprojekt –

  1. Hadoop MapReduce: MapReduce är en beräkningsmodell och mjukvaruramverk för att skriva applikationer som körs på Hadoop. Dessa MapReduce-program kan bearbeta enorma data parallellt på stora kluster av beräkningsnoder.
  2. HDFS (Hadoop distribuerat filsystem): HDFS tar hand om lagringsdelen av Hadoop-applikationer. MapReduce-applikationer förbrukar data från HDFS. HDFS skapar flera repliker av datablock och distribuerar dem på beräkningsnoder i ett kluster. Denna distribution möjliggör tillförlitliga och extremt snabba beräkningar.

Nuvarande utgåvor levererar ytterligare två kärnmoduler. Hadoop GARN, tillagd i Hadoop 2.x, schemalägger arbete på klustret, och Hadoop Common innehar den delade Java bibliotek som varje modul är beroende av. YARN är det som låter motorer som Spark, Tez och Flink körs tillsammans med MapReduce.

Även om Hadoop är mest känt för MapReduce och sitt distribuerade filsystem HDFS, används termen också för en familj av relaterade projekt som faller under paraplyet distribuerad databehandling och storskalig databehandling. Andra Hadoop-relaterade projekt på Apache inkluderar Bikupa, HBase, Mahout, Sqoop, Flumeoch ZooKeeper.

Hadoop Architecture

Hadoop har en master-slave-arkitektur för datalagring och distribuerad databehandling med hjälp av MapReduce och HDFS-metoder. Diagrammet nedan placerar dessa roller sida vid sida, med lagringslagret på ena sidan och bearbetningslagret på den andra.

Hadoop-arkitekturdiagram på hög nivå som visar NameNode, DataNodes, masternod och slavnoder

Hadoop på hög nivå Architecture

NameNode

NameNode lagrar metadata för varje fil och katalog som används i namnrymden, inklusive vilka block som utgör varje fil och var dessa block finns.

DataNode

En DataNode hanterar tillståndet för en HDFS-nod och låter dig interagera med de block den lagrar, och rapporterar tillbaka till NameNode med periodiska blockrapporter och pulsslag.

Huvudnod

Masternoden låter dig utföra parallell bearbetning av data med Hadoop MapReduce.

Slavnod

Slavnoderna är de extra maskinerna i Hadoop-klustret som låter dig lagra data och köra komplexa beräkningar. Dessutom kör varje slavnod en uppgift.Tracker och en DataNode. Detta låter dig synkronisera processerna med NameNode och JobTracker respektive.

I Hadoop kan master- eller slavsystem konfigureras i molnet eller lokalt.

En namngivningsanmärkning: JobbTracker och uppgiftTracker tillhör den första generationens MapReduce-körningstid (MRv1). Från och med Hadoop 2.x delar YARN upp sina uppgifter mellan ett klusteromfattande Resurshanterare, NodeManager per arbetare, och en ApplicationMaster per jobb. NameNode och DataNode är oförändrade.

Funktioner i Hadoop

Lämplig för stordataanalys

As Stora data Hadoop-kluster tenderar att vara distribuerade och ostrukturerade till sin natur, och är bäst lämpade för analys av stordata. Eftersom det är bearbetningslogiken (inte själva datan) som flödar till beräkningsnoderna förbrukas mindre nätverksbandbredd. Detta kallas datalokal koncept, och det hjälper till att öka effektiviteten hos Hadoop-baserade applikationer.

Skalbarhet

Hadoop-kluster kan enkelt skalas upp i valfri utsträckning genom att lägga till ytterligare klusternoder, och därmed möjliggöra tillväxt av stordata. Skalning kräver inte heller modifieringar av applikationslogiken.

Feltolerans

Hadoop-ekosystemet har en möjlighet att replikera indata till andra klusternoder. På så sätt, i händelse av ett klusternodfel, kan databehandlingen fortfarande fortsätta med hjälp av data som lagras på en annan klusternod. HDFS behåller tre kopior av varje block som standard, ett värde som ställs in av dfs.replikering egenskapen, och NameNode replikerar om alla block som sjunker under det antalet.

Nätverkstopologi i Hadoop

Nätverkets topologi (arrangemang) påverkar Hadoop-klustrets prestanda i takt med att klustrets storlek växer. Förutom prestanda måste man också tänka på hög tillgänglighet och hantering av fel. För att uppnå detta använder sig Hadoop-klusterbildning av nätverkstopologi.

Trädet nedan visar hur det arrangemanget är modellerat, från datacentret ner till noderna inuti varje rack.

Hadoop-nätverkstopologiträd med datacenter, rack och noder som används för att mäta avståndet mellan noder

Vanligtvis är nätverksbandbredd en viktig faktor att beakta när man bildar ett nätverk. Eftersom det kan vara svårt att mäta bandbredd representeras ett nätverk i Hadoop som ett träd, och avståndet mellan noderna i detta träd (antalet hopp) anses vara en viktig faktor i bildandet av ett Hadoop-kluster. Här är avståndet mellan två noder lika med summan av deras avstånd till deras närmaste gemensamma förfader.

Ett Hadoop-kluster består av ett datacenter, racket och noden som faktiskt utför jobb. Här består datacentret av rack och ett rack av noder. Nätverksbandbredden som är tillgänglig för processer varierar beroende på processernas plats. Det vill säga, den tillgängliga bandbredden blir mindre ju längre vi går från-

  • Processer på samma nod
  • Olika noder på samma rack
  • Noder på olika rack i samma datacenter
  • Noder i olika datacenter

Rackmedvetenhet använder samma träd: HDFS placerar repliker på mer än ett rack, så att förlora en rackväxel tar inte med sig alla kopior av data.

Vanliga frågor

Version 3.5.0, publicerad den 2 april 2026, är den första stabila utgåvan av 3.5-linjen och det vanliga valet för nya kluster. 3.4-linjen bibehålls fortfarande om du behöver en längre etablerad gren.

Ja. Hadoop stöder fristående läge, vilket körs som en Java process utan daemoner, och pseudodistribuerat läge, där varje daemon körs separat på en värd. Båda är avsedda för inlärning och testning, inte produktion.

Modeller som tränats på jobbhistorik förutsäger körtider, rekommenderar containerstorlekar och flaggar dataförskjutningar innan ett jobb slutförs. Liknande modeller skannar NameNode- och DataNode-loggar för att upptäcka trasiga diskar och heta rack tidigare än vad tröskelvarningar gör.

Det snabbar upp standardinställningarna: mapper- och reducer-skelett, konfiguration av jobbdrivrutiner och XML-egenskapsblock. Kontrollera alltid genererad kod mot den API-version du kör, eftersom Copilot blandar de gamla mapred- och nyare mapreduce-paketen.

Tre som standard, styrda av dfs.replication. En replik stannar kvar på skrivnoden, en andra går till ett annat rack och en tredje ansluter till det andra racket. NameNode återställer alla block som hamnar under målet.

Det är fortfarande vanligt att petabyte-skalig batchlagring måste finnas kvar på ägd hårdvara. De flesta nya bearbetningar skrivs för Spark eller Flink, som körs på YARN, så HDFS överlever ofta som lagringslager efter att MapReduce har tagits ur bruk.

YARN är resurshanteraren som introducerades i Hadoop 2.x. Den separerar klusterschemaläggning från MapReduce-programmeringsmodellen, som tog bort Job-funktionen.Tracker flaskhals och låt motorer som Spark, Tez och Flink delar ett kluster.

Java är inbyggt. Hadoop Streaming låter alla körbara program som läser standardindata fungera som en mapper eller reducer, så Python, Ruby, Perl och C++ är alla användbara, och Hive lägger till ett SQL-liknande lager över samma data.

Sammanfatta detta inlägg med: