Video: Bruk av datablokker (DB) i Simatic Step 7 2025
Når du gemmer en fil i HDFS, bryder systemet det ned i et sæt individuelle blokke og gemmer disse blokke i forskellige slave noder i Hadoop-klyngen. Dette er en helt normal ting at gøre, da alle filsystemer bryder filer ned i blokke, før de lagres til disk.
HDFS har ingen idé (og er ligeglad), hvad der er gemt inde i filen, så rå filer er ikke opdelt i overensstemmelse med regler, som vi mennesker ville forstå. Mennesker vil for eksempel have rekordgrænser - linjerne viser hvor en post begynder og slutter - for at blive respekteret.
HDFS er ofte lykkeligt uvidende om, at den endelige post i en blok kun kan være en delvis rekord, med resten af indholdet shuntet ud til den følgende blok. HDFS vil kun sikre sig, at filerne er opdelt i lige store blokke, der matcher den foruddefinerede blokstørrelse for Hadoop-forekomsten (medmindre en brugerdefineret værdi blev indtastet for den fil, der lagres). I det foregående billede er denne blokstørrelse 128 MB.
Ikke alle filer, du skal gemme, er et nøjagtigt antal af systemets blokstørrelse, så den endelige datablok for en fil bruger kun så meget plads som nødvendigt. I tilfælde af det foregående billede er den endelige datablok 1MB.
Begrebet lagring af en fil som en samling af blokke er helt i overensstemmelse med, hvordan filsystemer normalt fungerer. Men hvad er forskelligt om HDFS er skalaen. En typisk blokstørrelse, som du vil se i et filsystem under Linux, er 4KB, mens en typisk blokstørrelse i Hadoop er 128 MB. Denne værdi kan konfigureres, og den kan tilpasses som både en ny systemstandard og en brugerdefineret værdi for individuelle filer.
Hadoop var designet til at gemme data på petabyte skalaen, hvor eventuelle potentielle begrænsninger til udskalering er minimeret. Den høje blokstørrelse er en direkte konsekvens af dette behov for at gemme data i massiv skala.
Først og fremmest har alle datablokke, der er gemt i HDFS, deres egne metadata og skal spores af en central server, så programmer, der behøver adgang til en bestemt fil, kan rettes til, hvor alle filens blokke er gemt. Hvis blokstørrelsen var i kilobyteområdet, ville selv beskedne datamængder i terabyte-skalaen overvælde metadata-serveren med for mange blokke til at spore.
For det andet er HDFS designet til at muliggøre høj gennemstrømning, så parallelbehandling af disse store datasæt sker så hurtigt som muligt. Nøglen til Hadops skalerbarhed på databehandlingssiden er og vil altid være parallelisme - evnen til at behandle de enkelte blokke af disse store filer parallelt.
For at muliggøre effektiv behandling skal der sikres en balance. På den ene side skal blokstørrelsen være stor nok til at berettige de ressourcer, der er dedikeret til en individuel databehandlingsenhed (f.eks. Et kort eller en reduceret opgave). På den anden side kan blokstørrelsen ikke være så stor, at systemet venter meget lang tid for en sidste databehandlingsenhed for at afslutte sit arbejde.
Disse to overvejelser afhænger naturligvis af, hvilke former for arbejde der udføres på datablokkerne.