Innholdsfortegnelse:
Video: What is HDFS | Hadoop Distributed File System (HDFS) Introduction | Hadoop Training | Edureka 2025
Hadoop Distributed File System er en allsidig, elastisk, klynget tilnærming til å håndtere filer i et stort datamiljø. HDFS er ikke det endelige målet for filer. Det er snarere en datatjeneste som tilbyr et unikt sett med evner som trengs når dataene og hastigheten er høye. Fordi dataene skrives en gang og deretter leses mange ganger etterpå, er HDFS, i stedet for konstant lesing av andre filsystemer, et utmerket valg for å støtte stor dataanalyse.
Store data NameNodes
HDFS fungerer ved å bryte store filer til mindre stykker kalt blokker . Blokkene lagres på data noder, og det er ansvaret for NameNode å vite hvilke blokker på hvilke data noder utgjør hele filen. The NameNode fungerer også som en "trafikkansvarlig", som administrerer all tilgang til filene.
Den komplette samlingen av alle filene i klyngen er noen ganger referert til som filsystem namespace. Det er navnetNodes jobb å administrere dette navneområdet.
Selv om det eksisterer et sterkt forhold mellom NameNode og data noder, opererer de på en "løst koblet" måte. Dette gjør at klyngelementene opptrer dynamisk, og legger til servere etter hvert som etterspørselen øker. I en typisk konfigurasjon finner du en NameNode og muligens en dataknute som kjører på en fysisk server i rack. Andre servere kjører kun datodenoder.
Datoderknuter kommuniserer hverandre, slik at de kan samarbeide under normal filsystemoperasjon. Dette er nødvendig fordi blokkene for en fil sannsynligvis vil bli lagret på flere data noder. Siden NameNode er så kritisk for riktig drift av klyngen, kan og bør det replikeres for å beskytte mot en enkeltpunktssvikt.
Store datodenoder
Datodenoder er ikke smarte, men de er motstandsdyktig. Innenfor HDFS-klyngen repliseres datablokker over flere datodenoder, og tilgang styres av NameNode. Replikasjonsmekanismen er designet for optimal effektivitet når alle knutepunktene samles inn i et stativ. Faktisk bruker NameNode et "rack ID" for å holde oversikt over data noder i klyngen.
Datodenoder gir også "heartbeat" meldinger for å oppdage og sikre tilkobling mellom NameNode og data noder. Når et hjerteslag ikke lenger er til stede, unngår NameNode datodenoden fra klyngen og fortsetter å fungere som om ingenting skjedde. Når hjerterytmen returnerer, blir den lagt til klyngen på en åpen måte med hensyn til brukeren eller applikasjonen.
Dataintegritet er en nøkkelfunksjon. HDFS støtter en rekke funksjoner som er utformet for å gi dataintegritet. Som du kanskje regner med, når filer brytes inn i blokker og distribueres på tvers av forskjellige servere i klyngen, kan enhver variasjon i driften av noe element påvirke dataintegriteten. HDFS bruker transaksjonslogger og kontrollsumvalidering for å sikre integritet over hele klyngen.
Transaksjonslogger holder oversikt over hver operasjon og er effektive i revisjon eller gjenoppbygging av filsystemet hvis noe skulle oppstå.
Kontrollsumvalideringer brukes til å garantere innholdet i filer i HDFS. Når en klient ber om en fil, kan den verifisere innholdet ved å undersøke kontrollsummen. Hvis sjekksummen stemmer, kan filoperasjonen fortsette. Hvis ikke, rapporteres en feil. Checksum-filer er skjult for å unngå å manipulere.
Datodenoder bruker lokale disker på vareserveren for utholdenhet. Alle datablokker lagres lokalt, primært av ytelsesårsaker. Datablokkene replikeres på tvers av flere datodenoder, slik at feilen på en server ikke nødvendigvis korrumperer en fil. Graden av replikering, antall datodenoder og HDFS-navneområdet etableres når klyngen er implementert.
HDFS for store data
HDFS adresserer store data utfordringer ved å bryte filer inn i en relatert samling av mindre blokker. Disse blokkene fordeles mellom data noder i HDFS-klyngen og forvaltes av NameNode. Blokkeringsstørrelser kan konfigureres og er vanligvis 128 megabyte (MB) eller 256 MB, noe som betyr at en 1 GB-fil forbruker åtte 128 MB blokker for de grunnleggende lagringsbehovene.
HDFS er motstandsdyktig, så disse blokkene blir replikert i hele klyngen i tilfelle serverfeil. Hvordan holder HDFS oversikt over alle disse brikkene? Det korte svaret er filsystem metadata .
Metadata er definert som "data om data. "Tenk på HDFS-metadata som en mal for å gi en detaljert beskrivelse av følgende:
-
Når filen ble opprettet, åpnet, endret, slettet og så videre
-
Hvor blokkene av filen er lagret i klyngen < Hvem har rettighetene til å vise eller endre filen? Hvor mange filer er lagret i klyngen? Hvor mange datodenoder finnes i klyngen
-
Plasseringen av transaksjonsloggen for klyngen
-
HDFS Metadata lagres i NameNode, og mens klyngen fungerer, lastes alle metadataene inn i det fysiske minnet til NameNode-serveren. Som du kanskje regner med, jo større er klyngen, desto større er metadatafotavtrykk.
-
Hva gjør en blokkserver nettopp? Sjekk ut følgende liste:
-
Lagrer datablokker i serverens lokale filsystem. HDFS er tilgjengelig på mange forskjellige operativsystemer og oppfører seg uansett om det er Windows, Mac OS eller Linux.
Lagrer metadataene til en blokk i det lokale filsystemet basert på metadatamalen i NameNode.
Utfører periodiske valideringer av filkontrollsummer.
-
Sender vanlige rapporter til NameNode om hvilke blokker som er tilgjengelige for filoperasjoner.
-
Gir metadata og data til kunder på forespørsel. HDFS støtter direkte tilgang til data noder fra klientprogrammer.
-
Videresender data til andre data noder basert på en "pipelining" -modell.
-
Blokkering på data noder er kritisk for data replikering og støtte for data pipelining. HDFS holder en kopi av hver blokk lokalt. HDFS er seriøs om data replikasjon og resiliency.
