Hva er HDFS? (Hadoop-distribuert filsystem)
概要: Forklaring på hva HDFS (Hadoop Distributed File System) er. Denne artikkelen beskriver også hvordan HDFS brukes, og gir et eksempel.
手順
Hva er HDFS? (Hadoop-distribuert filsystem)
Fakta
Svar på distribuert Hadoop-filsystem
Om Hadoop Distributed File System (HDFS)
For å forstå hvordan det er mulig å skalere en Hadoop-klynge® til hundrevis (og til og med tusenvis) noder, må du starte med Hadoop Distributed File System (HDFS). Data i en Hadoop-klynge
deles inn i mindre deler (kalt blokker) og distribueres i hele klyngen. På denne måten kan du utføre kart- og reduseringsfunksjonene på mindre delsett av de større datasettene dine, og dette gir skalerbarheten som trengs for big data-behandling.
Hva er målet?
Målet med Hadoop er å bruke vanlige servere i en svært stor klynge, der hver server har et sett med rimelige interne diskstasjoner. For høyere ytelse prøver MapReduce
å tilordne workloader til disse serverne der dataene som skal behandles, lagres. Dette er kjent som datalokalitet. (Det er på grunn av dette prinsippet at bruk av et lagringsområdenettverk (SAN) eller nas (Network Attached Storage) i et Hadoop-miljø ikke anbefales. For Hadoop-implementeringer som bruker san eller NAS, kan ekstra nettverkkommunikasjonskostnader føre til flaskehalser for ytelsen, spesielt for større klynger.) Ta deg tid til å tenke på en 1000-maskinklynge der hver maskin har tre interne diskstasjoner. vurder deretter feilfrekvensen til en klynge som består av 3000 rimelige stasjoner + 1000 rimelige servere!
Vi er sannsynligvis allerede på samme side her: Komponenten betyr tid til å mislykkes (MTTF) som du kommer til å oppleve i en Hadoop-klynge, er sannsynligvis analog med en glidelås på hekken til ungen din: den kommer til å svikte (og ikke nok, glidelåser ser ut til å mislykkes bare når du virkelig trenger dem). Det kjølige med Hadoop er at virkeligheten av MTTF-ratene knyttet til billig maskinvare faktisk er godt forstått (et designpunkt hvis du vil), og en del av styrken til Hadoop er at den har innebygd feiltoleranse og muligheter for feilkompensasjon. Dette er det samme for HDFS, ved at data er delt inn i blokker, og kopier av disse blokkene lagres på andre servere i Hadoop-klyngen. Det vil se ut til at en enkeltfil faktisk lagres som mindre blokker som replikeres på tvers av flere servere i hele klyngen.
Et eksempel på HDFS
Tenk på en fil som inneholder telefonnumrene for alle i USA. personer med etternavn som starter med A, kan lagres på server 1, B på server 2 og så videre. I en Hadoop-verden vil deler av denne telefonboken bli lagret på tvers av klyngen, og for å rekonstruere hele telefonboken trenger programmet blokkene fra hver server i klyngen. HdFS replikerer disse mindre delene til to ekstra servere som standard for å oppnå tilgjengelighet etter hvert som komponentene mislykkes. (Denne redundansen kan økes eller reduseres per fil eller for et helt miljø. For eksempel trenger en hadoop-klynge for utvikling vanligvis ingen dataredundans.) Denne redundansen gir flere fordeler, det mest åpenbare er høyere tilgjengelighet.
I tillegg gjør denne redundansen at Hadoop-klyngen kan dele arbeidet opp i mindre deler og kjøre disse jobbene på alle serverne i klyngen for bedre skalerbarhet. Til slutt får du fordelen med datalokalitet, noe som er viktig når du arbeider med store datasett. Vi beskriver disse viktige fordelene senere i dette kapittelet.