Vill du veta hur Hadoop faktiskt lagrar och bearbetar stora mängder data?
I den här artikeln kommer vi att studera hur Hadoop fungerar internt. Vi kommer att se hur Hadoop lagrar och bearbetar stora datamängder. Artikeln förklarar i detalj hur Hadoop fungerar. Artikeln ger först en kort introduktion till Hadoop.
Sedan kommer vi att se Hadoop-kärnkomponenterna och Daemons köra i Hadoop-klustret. Artikeln förklarar sedan hur Hadoop fungerar och täcker alla dess kärnkomponenter som HDFS, MapReduce och YARN.
Så låt oss nu först se den korta introduktionen till Hadoop.
Introduktion till Hadoop
Med den växande Big data utvecklade Apache Software Foundation 2008 ett ramverk med öppen källkod känd som Apache Hadoop, som är en lösning på alla big data-problem.
Apache Hadoop är ett ramverk som kan lagra och bearbeta enorma mängder ostrukturerad data som sträcker sig i storlek från terabyte till petabyte. Det är ett mycket feltolerant och mycket tillgängligt system.
Hadoop lagrar en enorm mängd data på ett distribuerat sätt i HDFS. Hadoop MapReduce är bearbetningsenheten i Hadoop, som bearbetar data parallellt.
Hadoop YARN är en annan kärnkomponent i Hadoop-ramverket, som ansvarar för att hantera resurser bland applikationer som körs i klustret och schemalägga uppgiften.
Innan vi studerar hur Hadoop fungerar internt, låt oss först se huvudkomponenterna och demonerna i Hadoop.
Komponenter och demoner i Hadoop
Hadoop består av tre huvudkomponenter som är HDFS, MapReduce och YARN.
1. Hadoop HDFS
Det är lagringslagret för Hadoop. Hadoop Distributed File System lagrar data över olika noder i ett kluster. Den delar upp data i block och lagrar dem på olika noder. Blockstorleken är 128 MB som standard . Vi kan konfigurera blockstorleken enligt våra krav.
2. Hadoop MapReduce
Det är bearbetningsskiktet i Hadoop. Hadoop MapReduce behandlar data som lagras i Hadoop HDFS parallellt över olika noder i klustret. Den delar upp uppgiften som skickats av användaren i den oberoende uppgiften och bearbetar dem som deluppgifter över råvaruhårdvaran.
3. Hadoop GARN
Det är Hadoops resurs- och processhanteringslager. YARN ansvarar för att dela resurser mellan applikationerna som körs i klustret och schemalägga uppgiften i klustret.
Dessa är de tre kärnkomponenterna i Hadoop.
Daemons som körs i Hadoop-klustret
Det finns några Daemons som körs på Hadoop Cluster. Daemons är den lätta processen som körs i bakgrunden.
Vissa demoner körs på masternoden och några på slavnoden. Låt oss nu studera Hadoop Daemons.
De viktigaste Hadoop Daemon är:
1. Master Daemons
- NameNode: Det är master Daemon i Hadoop HDFS. Det upprätthåller filsystemets namnutrymme. Den lagrar metadata om varje block av filerna.
- ResourceManager: Det är huvuddemonen för YARN. Den meddelar resurser bland alla applikationer som körs i klustret.
2. Slavdemoner
- Datanod: DataNode är slavdemonen för Hadoop HDFS. Den körs på slavmaskiner. Den lagrar faktiska data eller block.
- NodeManager: Det är garnets slavdamon. Den tar hand om alla individuella beräkningsnoder i klustret.
Hur fungerar Hadoop?
Hadoop lagrar och bearbetar data på ett distribuerat sätt över klustret av råvaruhårdvara. För att lagra och bearbeta all data skickar klienten data och program till Hadoop-klustret.
Hadoop HDFS lagrar data, MapReduce bearbetar data som lagras i HDFS och YARN delar upp uppgifterna och tilldelar resurser.
Låt oss nu titta på dessa komponenter i detalj.
1. HDFS
Uppgifterna i Hadoop lagras i Hadoops distribuerade filsystem. Det finns två demoner som körs i Hadoop HDFS som är NameNode och DataNode.
a. NameNode
NameNode är huvuddemonen i HDFS. Den körs på masternoderna. Det upprätthåller filsystemets namnutrymme. NameNode lagrar inte den faktiska datan. Den lagrar metadata, såsom information om filblock, filbehörighet, blockeringsplatser etc.
NameNode hanterar DataNode och ger instruktioner till dem. NameNode tar emot ett hjärtslag från DataNodes var tredje sekund, vilket anger att DataNode är vid liv.
b. DataNode
DataNode är slavdemonen i HDFS. DataNodes är slavnoder som lagrar den faktiska affärsdatan. De är ansvariga för att betjäna klientens läs/skrivförfrågningar baserat på instruktionerna från NameNode. DataNodes skickar hjärtslagsmeddelanden till NameNode för att säkerställa att de är vid liv.
c. Sekundär namnnod
Det är en annan demon i Hadoop HDFS. Det är hjälpnoden för den primära NameNode. Secondary NameNode laddar ner redigeringsloggarna och Fsimage-filen från den primära NameNode och tillämpar regelbundet redigeringsloggarna på Fsimage .
Sedan skickar den tillbaka den uppdaterade Fsimage-filen till NameNode. Så om den primära NameNode misslyckas, används den sista sparade Fsimagen på den sekundära NameNode för att återställa filsystemets metadata.
Närhelst klienten vill läsa eller skriva data till Hadoop HDFS, interagerar den först med NameNode. NameNode kontrollerar först efter klientprivilegier, och om klienten har tillräckliga privilegier, tillhandahåller NameNode adressen till DataNodes varifrån klienten kan läsa eller skriva data.
Klientens fil i HDFS är uppdelad i block. Blockstorleken är 128 MB som standard. DataNode lagrar filblocken. För att ge feltolerans skapar HDFS repliker av block beroende på replikeringsfaktorn.
Som standard är replikeringsfaktorn 3, vilket betyder att 3 kopior av ett block lagras i HDFS. HDFS lagrar repliker av blocket på olika DataNodes genom att följa algoritmen för Rack Awareness.
Under filläsning, om någon DataNode går ner, tillhandahåller NameNode adressen till en annan DataNode som innehåller en replika av blocket varifrån klienten kan läsa dess data utan driftstopp.
2. MapReduce
MapReduce är bearbetningsskiktet i Hadoop. Den bearbetar data parallellt över flera maskiner i klustret. Det fungerar genom att dela upp uppgiften i oberoende deluppgifter och exekvera dem parallellt över olika datanoder.
MapReduce bearbetar data i två faser, det vill säga Kartfasen och Reducera fasen . Ingången och utsignalen från båda faserna är nyckel- och värdeparen. Typen av nyckel, värdepar anges av programmeraren genom InputFormat-klassen . Som standard används textinmatningsformatet.
Programmeraren specificerar de två funktionerna, det vill säga kartfunktion och reducera-funktionen . I kartfunktionen skriver programmeraren affärslogiken för att bearbeta data.
I funktionen Reducera skriver programmeraren logiken för att summera och aggregera kartfunktionens mellanutgång och genererar utdata.
Fungerande av Hadoop MapReduce
Närhelst klienten vill utföra någon bearbetning av sina data i Hadoop-klustret, lagrar den först data i Hadoop HDFS och skriver sedan MapReduce-programmet för bearbetning av data. Hadoop MapReduce fungerar enligt följande:
1. Hadoop delar upp jobbet i uppgifter av två typer, det vill säga kartlägga uppgifter och minska uppgifter. YARN schemalagda dessa uppgifter (vilket vi kommer att se senare i den här artikeln). Dessa uppgifter körs på olika datanoder.
2. Indata till MapReduce-jobbet är uppdelat i bitar av fast storlek som kallas ingångsdelningar.
3. En kartuppgift som kör en användardefinierad kartfunktion för varje post i ingångsdelningen skapas för varje ingångsdelning. Dessa kartuppgifter körs på de datanoder där indata finns.
4. Utdata från kartuppgiften är mellanutdata och skrivs till den lokala disken.
5. De mellanliggande utgångarna för kartuppgifterna blandas och sorteras och skickas sedan till reduceraren.
6. För en enda reduceringsuppgift skickas den sorterade mellanutgången från mapparen till noden där reduceruppgiften körs. Dessa utgångar slås sedan samman och skickas sedan till den användardefinierade reduceringsfunktionen.
7. Reduceringsfunktionen sammanfattar utdata från mapparen och genererar utdata. Reducerarens utdata lagras på HDFS.
8. För flera reduceringsfunktioner anger användaren antalet reducerare. När det finns flera reduceringsuppgifter partitionerar kartuppgifterna sina utdata och skapar en partition för varje reduceringsuppgift.
GARN
YARN är resurshanteringslagret i Hadoop. Den schemalägger uppgiften i Hadoop-klustret och tilldelar resurser till applikationerna som körs i klustret. Den är ansvarig för att tillhandahålla de beräkningsresurser som behövs för att exekvera applikationerna.
Det finns två YARN-demoner som körs i Hadoop-klustret för att betjäna YARN-kärntjänster. De är:
a. ResourceManager
Det är huvuddemonen för YARN. Den körs på huvudnoden per kluster för att hantera resurserna över klustret. ResourceManager har två huvudkomponenter som är Scheduler och ApplicationManager.
Schemaläggaren allokerar resurser till olika applikationer som körs i klustret.
ApplicationManager tar upp jobbet som lämnats in av klienten och förhandlar behållaren för exekvering av den applikationsspecifika ApplicationMaster, och startar om ApplicationMaster-behållaren vid fel.
b. NodeManager
NodeManager är slavdemonerna för YARN. Den körs på alla slavnoder i klustret. Den ansvarar för att lansera och hantera behållarna på noder. Behållare kör de applikationsspecifika processerna med en begränsad uppsättning resurser som minne, CPU och så vidare.
När NodeManager startar meddelar den sig själv för ResourceManager. Den skickar med jämna mellanrum ett hjärtslag till ResourceManager. Det erbjuder resurser till klustret.
c. ApplicationMaster
Applikationsprogrammet ApplicationMaster förhandlar containrar från schemaläggare och spårar containerstatus och övervakar containerförloppet.
En klient skickar in en ansökan till ResourceManager. ResourceManager kontaktar NodeManager som startar och övervakar beräkningsbehållare på noder i klustret. Behållaren kör ApplicationMaster.
MapReduce-uppgiften och ApplicationMaster körs i behållare som är schemalagda av ResourceManager och hanteras av NodeManagers.
Låt oss nu sammanfatta hur Hadoop fungerar internt:
1. HDFS delar in klientindata i block med storleken 128 MB. Beroende på replikeringsfaktorn skapas repliker av block. Blocken och deras repliker lagras på olika DataNodes.
2. När alla block har lagrats på HDFS DataNodes kan användaren bearbeta data.
3. För att bearbeta data skickar klienten MapReduce-programmet till Hadoop.
4. ResourceManager schemalagda sedan programmet som skickades av användaren på enskilda noder i klustret.
5. När alla noder har slutfört bearbetningen skrivs utdata tillbaka till HDFS.
Sammanfattning
I den här artikeln har vi studerat hela hur Hadoop fungerar. Jag hoppas att du efter att ha läst den här artikeln förstår hur Hadoop lagrar och bearbetar enorma mängder data.
Artikeln förklarar också hur resurserna är schemalagda bland applikationerna i resurserna. Artikeln beskriver de stora demonerna som körs i Hadoop-klustret och kärnkomponenterna i Hadoop.
Jag hoppas att du förstår hur Hadoop fungerar internt.
Fortsätt lära dig!