Vad är Hadoop? Introduktion, arkitektur, ekosystem, komponenter

Innehållsförteckning:

Anonim

Vad är Hadoop?

Apache Hadoop är ett program med ö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 fördelade över kluster av råvarudatorer. Varudatorer ä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.

Liknar data som finns i ett lokalt filsystem i ett persondatorsystem, i Hadoop, finns data i ett distribuerat filsystem som kallas som ett Hadoop Distribuerat filsystem . Bearbetningsmodellen är baserad på "Data Locality" -koncept där beräkningslogik skickas till klusternoder (server) som innehåller data. Denna beräkningslogik är ingenting, utan en sammanställd version av ett program skrivet på ett högnivåspråk som Java. Ett sådant program behandlar data som lagras i Hadoop HDFS.

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

I den här handledningen lär du dig,

  • Hadoop EcoSystem och komponenter
  • Hadoop-arkitektur
  • Funktioner av 'Hadoop'
  • Nätverkstopologi i Hadoop

Hadoop EcoSystem och komponenter

Nedanstående diagram visar olika komponenter i Hadoop ekosystem-

Apache Hadoop består av två delprojekt -

  1. Hadoop MapReduce: MapReduce är en beräkningsmodell och ett programramverk 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 konsumerar data från HDFS. HDFS skapar flera repliker av datablock och distribuerar dem på beräkningsnoder i ett kluster. Denna distribution möjliggör pålitliga och extremt snabba beräkningar.

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

Hadoop-arkitektur

Högnivå Hadoop-arkitektur

Hadoop har en Master-Slave-arkitektur för datalagring och distribuerad databehandling med MapReduce- och HDFS-metoder.

NamnNod:

NameNode representerade alla filer och kataloger som används i namnområdet

DataNode:

DataNode hjälper dig att hantera tillståndet för en HDFS-nod och låter dig interagera med blocken

MasterNode:

Huvudnoden 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 för att genomföra komplexa beräkningar. Dessutom kommer hela slavnoden med Task Tracker och en DataNode. Detta låter dig synkronisera processerna med NameNode respektive Job Tracker.

I Hadoop kan master- eller slavsystem ställas in i molnet eller på plats

Funktioner av 'Hadoop'

• Lämplig för Big Data-analys

Eftersom Big Data tenderar att distribueras och ustruktureras i naturen, är HADOOP-kluster bäst lämpade för analys av Big Data. Eftersom det är bearbetningslogik (inte faktiska data) som flyter till datornoderna förbrukas mindre nätverksbandbredd. Detta koncept kallas för datalokalitetskoncept som hjälper till att öka effektiviteten i Hadoop-baserade applikationer.

• Skalbarhet

HADOOP-kluster kan enkelt skalas i vilken utsträckning som helst genom att lägga till ytterligare klusternoder och därmed möjliggöra tillväxt av Big Data. Skalning kräver inte heller ändringar av applikationslogiken.

• Feltolerans

HADOOP-ekosystem har en bestämmelse för att replikera indata till andra klusternoder. På det sättet kan databearbetning fortsätta genom att använda data som är lagrade på en annan klusternod i händelse av ett klusternodfel.

Nätverkstopologi i Hadoop

Topologi (arrangemang) av nätverket påverkar Hadoop-klustrets prestanda när storleken på Hadoop-klustret växer. Förutom prestanda måste man också bry sig om hög tillgänglighet och hantering av fel. För att uppnå denna Hadoop använder klusterbildning nätverkstopologi.

Vanligtvis är nätverksbandbredd en viktig faktor att tänka på när man bildar något nätverk. Eftersom mätning av bandbredd kan vara svår, representeras i Hadoop ett nätverk som ett träd och avståndet mellan noder i detta träd (antal humle) anses vara en viktig faktor i bildandet av Hadoop-kluster. Här är avståndet mellan två noder lika med summan av deras avstånd till deras närmaste gemensamma förfader.

Hadoop-klustret består av ett datacenter, racket och noden som faktiskt utför jobb. Här består datacentret av rack och rack består av noder. Nätverksbandbredd som är tillgänglig för processer varierar beroende på platsen för processerna. Det vill säga, den tillgängliga bandbredden blir mindre när vi går bort från-

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