Innehållsförteckning:
Video: Big Data analytics Hadoop with Mapreduce, HIVE, PIG , Zookeeper and Spark Class 1 2024
Hadoop Distributed File System är ett mångsidigt, fjädrande, klusterriktat sätt att hantera filer i en stor datamiljö. HDFS är inte det slutliga målet för filer. Det är snarare en datatjänst som erbjuder en unik uppsättning funktioner som behövs när datamängder och hastighet är höga. Eftersom data skrivs en gång och sedan läses många gånger därefter, istället för de konstanta lässkrivningarna av andra filsystem, är HDFS ett utmärkt val för att stödja stor dataanalys.
Stora data NameNodes
HDFS fungerar genom att bryta stora filer i mindre bitar som heter block . Blockerna lagras på data noder, och det är Namnos ansvar att veta vilka block på vilka datodenoder som utgör den fullständiga filen. NamnNoden fungerar också som en "trafikpolis", som hanterar all åtkomst till filerna.
Den kompletta samlingen av alla filer i klustret kallas ibland filsystemet namespace. Det är namnnamnets jobb att hantera denna namnrymd.
Även om det finns ett starkt samband mellan NameNode och datodenoderna, fungerar de på ett "löst kopplat" sätt. Detta gör att klusterelementen kan fungera dynamiskt och lägger till servrar som efterfrågan ökar. I en typisk konfiguration hittar du en NameNode och eventuellt en datanod som körs på en fysisk server i racketen. Andra servrar kör endast datodenoder.
Datodenoderna kommunicerar med varandra så att de kan samarbeta under normal filsystemoperation. Detta är nödvändigt eftersom block för en fil sannolikt kommer att lagras på flera datodenoder. Eftersom NameNode är så kritisk för korrekt hantering av klustret, kan och bör det replikeras för att skydda mot ett enda punktfel.
Stora data noder
Datodenoder är inte smarta, men de är fjädrande. Inom HDFS-klustret replikeras datablock över flera datodenoder och åtkomst hanteras av NameNode. Replikeringsmekanismen är konstruerad för optimal effektivitet när alla noder i klustret samlas in i ett rack. I själva verket använder NameNode ett "rack-ID" för att hålla reda på datodenoderna i klustret.
Datodenoder ger också "hjärtslag" -meddelanden för att detektera och säkerställa anslutning mellan NameNode och datodenoderna. När ett hjärtslag inte längre är närvarande, avmarkerar NameNode datodenoden från klustret och fortsätter att fungera som om ingenting hände. När hjärtslaget återvänder läggs det till klustret öppet med avseende på användaren eller applikationen.
Dataintegritet är en nyckelfunktion. HDFS stöder ett antal funktioner som är utformade för att ge dataintegritet. Som du kanske förväntar dig, när filer bryts in i block och sedan distribueras över olika servrar i klustret, kan eventuell variation i driften av något element påverka dataintegriteten. HDFS använder transaktionsloggar och kontrollsumvalidering för att säkerställa integritet över klustret.
Transaktionsloggar håller reda på varje operation och är effektiva vid revision eller ombyggnad av filsystemet om något skulle uppstå.
Kontrollsumvalider används för att garantera innehållet i filer i HDFS. När en klient begär en fil kan den verifiera innehållet genom att undersöka sin kontrollsumma. Om kontrollsumman matchar kan filoperationen fortsätta. Om inte, rapporteras ett fel. Checksum-filer är dolda för att undvika manipulering.
Datodnoder använder lokala diskar på råvareservern för uthållighet. Alla datablock lagras lokalt, främst av prestationsskäl. Datablock replikeras över flera datodenoder, så misslyckandet av en server behöver inte nödvändigtvis korrumpera en fil. Graden av replikering, antalet data noder och HDFS namnrymden etableras när klustret implementeras.
HDFS för stora data
HDFS adresserar stora datautmaningar genom att bryta filer till en relaterad samling av mindre block. Dessa block distribueras bland datodenoderna i HDFS-klustret och hanteras av NameNode. Blockstorlekar är konfigurerbara och är vanligtvis 128 megabyte (MB) eller 256 MB, vilket betyder att en 1 GB-fil förbrukar åtta 128 MB block för sina grundläggande lagringsbehov.
HDFS är fjädrande, så dessa block replikeras i hela klustret vid ett serverns fel. Hur håller HDFS reda på alla dessa bitar? Det korta svaret är filsystemet metadata .
Metadata definieras som "data om data. "Tänk på HDFS-metadata som en mall för att ge en detaljerad beskrivning av följande:
-
När filen skapades, öppnades, ändrats, raderades och så vidare
-
Där filens block sparas i klustret < Vem har rätt att visa eller ändra filen
-
Hur många filer lagras i klustret
-
Hur många datodenoder finns i klustret
-
Platsen för transaktionsloggen för klustret
-
HDFS metadata lagras i NameNode, och medan klustret fungerar, laddas alla metadata i det fysiska minnet på NameNode-servern. Som du kanske förväntar sig, ju större klustret är desto större är metadatafotavtrycket.
Vad gör exakt en blockserver? Kolla in följande lista:
Lagrar datablocken i serverns lokala filsystem. HDFS är tillgängligt på många olika operativsystem och fungerar inte heller på Windows, Mac OS eller Linux.
-
Lagrar metadata för ett block i det lokala filsystemet baserat på metadatamallen i NameNode.
-
Utför periodiska valideringar av filkontrollsummor.
-
Skickar vanliga rapporter till NameNode om vilka block som är tillgängliga för filoperationer.
-
Ger metadata och data till kunder på begäran. HDFS stöder direkt åtkomst till datodenoden från klientprogram.
-
Vidarebefordrar data till andra datodenoder baserat på en "pipelining" -modell.
-
Blockplacering på datodenoden är avgörande för datautplikation och stöd för datapipelining. HDFS håller en replika av varje block lokalt. HDFS är seriös om datautplikation och elasticitet.