Indholdsfortegnelse:
Video: Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Hadoop Training | Edureka 2025
Hadoop Distributed File System er en alsidig, fjedrende, grupperet tilgang til styring af filer i et stort datamiljø. HDFS er ikke den endelige destination for filer. Det er snarere en datatjeneste, der tilbyder et unikt sæt kapaciteter, der er nødvendige, når datamængder og hastighed er høje. Fordi dataene er skrevet en gang og derefter læses mange gange derefter, i stedet for de konstante læsninger af andre filsystemer, er HDFS et glimrende valg til understøttelse af stor data analyse.
Store data NameNodes
HDFS virker ved at bryde store filer i mindre stykker kaldet blokke . Blokkene gemmes på dataduder, og det er navnetNodes ansvar at vide, hvilke blokke på hvilke datoderoder der udgør hele filen. NameNode fungerer også som en "traffic cop", der styrer al adgang til filerne.
Den komplette samling af alle filerne i klyngen kaldes undertiden filsystemet namespace. Det er navnetNode's job at administrere dette navneområde.
Selv om der eksisterer et stærkt forhold mellem NameNode og data noderne, opererer de på en "løst koblet" måde. Dette gør det muligt for klyngeelementerne at opføre sig dynamisk og tilføje servere, da efterspørgslen stiger. I en typisk konfiguration finder du en NameNode og muligvis en datadode, der kører på en fysisk server i racket. Andre servere kører kun dataduder.
Datodernoderne kommunikerer indbyrdes, så de kan samarbejde under normale filsystemoperationer. Dette er nødvendigt, fordi blokke for en fil sandsynligvis vil blive gemt på flere dataduder. Da NameNode er så kritisk for korrekt drift af klyngen, kan og bør det replikeres for at beskytte et enkelt punktfejl.
Store dataduder
Dataduder er ikke kloge, men de er modstandsdygtige. Inden for HDFS-klyngen replikeres datablokker på tværs af flere dataduder, og adgang styres af NameNode. Replikeringsmekanismen er designet til optimal effektivitet, når alle knudepunkterne samles i et stativ. Faktisk bruger NameNode et "rack ID" for at holde styr på datodenoden i klyngen.
Data nodes giver også "heartbeat" meddelelser til at registrere og sikre forbindelse mellem NameNode og data noderne. Når et hjerteslag ikke længere er til stede, afkortes NameNode datodenoden fra klyngen og fortsætter med at fungere som om der ikke er sket noget. Når hjerterytmen vender tilbage, tilføjes den klyngen gennemsigtigt med hensyn til brugeren eller applikationen.
Dataintegritet er en nøglefunktion. HDFS understøtter en række funktioner designet til at give dataintegritet. Som du måske regner med, når filer er brudt i blokke og derefter fordelt på forskellige servere i klyngen, kan enhver ændring i driften af et element påvirke dataintegriteten. HDFS bruger transaktionslogs og checksumvalidering for at sikre integritet på tværs af klyngen.
Transaktionslogfiler holder styr på alle operationer og er effektive til revision eller genopbygning af filsystemet, hvis der forekommer noget unødigt.
Checksum valideringer bruges til at garantere indholdet af filer i HDFS. Når en klient anmoder om en fil, kan den verificere indholdet ved at undersøge dens checksum. Hvis checksummet matcher, kan filoperationen fortsætte. Hvis ikke, rapporteres en fejl. Checksum-filer er skjult for at undgå manipulation.
Dataduder bruger lokale diske på råvareserveren til persistens. Alle datablokkerne gemmes lokalt, primært af ydeevne. Datablokker replikeres på tværs af flere dataduder, så fejlen på en server muligvis ikke nødvendigvis ødelægger en fil. Graden af replikation, antallet af data noder og HDFS navneområde etableres, når klyngen implementeres.
HDFS til store data
HDFS adresserer store dataudfordringer ved at bryde filer ind i en relateret samling af mindre blokke. Disse blokke fordeles mellem data nodene i HDFS-klyngen og forvaltes af NameNode. Blokstørrelser er konfigurerbare og er normalt 128 megabyte (MB) eller 256 MB, hvilket betyder at en 1 GB-fil forbruger otte 128 MB blokke for de grundlæggende opbevaringsbehov.
HDFS er elastisk, så disse blokke replikeres i hele klyngen i tilfælde af en serverfejl. Hvordan holder HDFS styr på alle disse stykker? Det korte svar er filsystemet metadata .
Metadata defineres som "data om data. "Tænk på HDFS-metadata som en skabelon for at give en detaljeret beskrivelse af følgende:
-
Når filen blev oprettet, adgang, ændret, slettet og så videre
-
Hvor blokkerne af filen er gemt i klyngen < Hvem har ret til at se eller ændre filen
-
Hvor mange filer der er gemt i klyngen
-
Hvor mange data noder findes i klyngen
-
Placeringen af transaktionsloggen for klyngen
-
HDFS metadata er gemt i NameNode, og mens klyngen fungerer, indlæses alle metadata i den fysiske hukommelse på NameNode-serveren. Som du måske regner med, jo større er klyngen, jo større er metadataudtrykket.
Hvad gør en blok server lige? Tjek følgende liste:
Gemmer datablokkerne i serverens lokale filsystem. HDFS er tilgængelig på mange forskellige operativsystemer og opfører sig det samme, uanset om det er Windows, Mac OS eller Linux.
-
Gemmer metadataene for en blok i det lokale filsystem baseret på metadatasjablonen i NameNode.
-
Udfører periodiske valideringer af file checksums.
-
Sender regelmæssige rapporter til NameNode om, hvilke blokke der er tilgængelige til filoperationer.
-
Giver metadata og data til kunder efter behov. HDFS understøtter direkte adgang til data noder fra klientprogrammer.
-
Videresender data til andre dataduder baseret på en "pipelining" -model.
-
Blokplacering på dataduderne er afgørende for dataprofilering og understøttelse af data-pipelining. HDFS holder en kopi af hver blok lokalt. HDFS er seriøs om data replikation og resiliency.