sql >> Database teknologi >  >> RDS >> Database

Introduktion til HDFS | Hvad er HDFS, og hvordan virker det?

Kerneteknikken til at gemme filer på lager ligger i det filsystem, som operativsystemet bruger. I modsætning til almindelige filsystemer bruger Hadoop et andet filsystem, der håndterer store datasæt på tværs af et distribueret netværk. Det kaldes Hadoop Distributed File System (HDFS) . Denne artikel introducerer ideen med relaterede baggrundsoplysninger til at begynde med.

Hvad er et filsystem?

Et filsystem er typisk en metode og datastruktur, som operativsystemet bruger til at administrere filer på en disk eller partition. Fra en magnetisk disks perspektiv er alle data en ladning, der er lagret i sektorer på tværs af spor. Tænk på spor som spiralrækker og sektorer som de små celler på tværs af spiralsporene. Hvis vi nu anmoder disken om at lokalisere nogle data, kan den i bedste fald omdirigere hovedet til nogle sektorer i spiralsekvensen. Disse rådata er ikke meningsfulde, medmindre operativsystemet kommer ind i billedet; det er ansvarligt for at afgrænse oplysningerne fra en samling af sektorer, der skal genkendes som en fil. Et operativsystem organiserer informationen i en bogføringsdatastruktur kaldet et filsystem. Denne struktur definerer bogføringsmønsteret. Men der er en vis teknisk forskel på, hvordan OS'er administrerer denne struktur. For eksempel bruger Windows FAT32, NTFS-modellen, Linux bruger EXT2, EXT3 og så videre. Men den grundlæggende idé er, at de alle organiserer dataene efter en eller anden defineret struktur.

Filsystemorganisation er primært ansvarlig for at administrere oprettelse, ændring og sletning af filer (mapper er også filer), diskpartition, filstørrelser og så videre, og de fungerer direkte på råsektorer af en disk eller partition.

Filer i et distribueret system

Karakteristikaene for et distribueret system er forskellige i den forstand, at lageret er spredt ud over flere maskiner i et netværk. Et enkelt lager kan ikke indeholde så stor en mængde data. Hvis en enkelt maskine har en begrænset lagerkapacitet og processorkraft, men når behandlingsjobbet og lagringen fordeles mellem maskiner på tværs af netværket, bliver kraften og effektiviteten mangfoldig. Dette åbner ikke kun op for muligheden for omfattende processorkraft, men udnytter også brugen af ​​den eksisterende infrastruktur. Dette resultat er, at omkostningerne minimeres, men alligevel øges effektiviteten. Hver eneste maskine i netværket bliver en potentiel arbejdshest, der huser begrænsede data, samtidig med at den tilsammen er en del af ubegrænset lager og omfattende processorkraft. Afvejningen er kompleksitet. Hvis det kan udnyttes med innovative teknikker, er et distribueret system fremragende til at håndtere problemerne med big data. HDFS-filsystemet sigter på at opnå det. Ud over HDFS er der faktisk mange andre lignende distribuerede filsystemer, såsom IBM's GPFS (General Parallel File System), Ceph, (Wikipedia-link:liste over distribuerede filsystemer) og lignende. De forsøger alle at løse dette problem fra forskellige retninger med forskellige succesrater.

HDFS-oversigt

Det normale filsystem er designet til at fungere på en enkelt maskine eller et enkelt driftsmiljø. Datasættene i Hadoop kræver lagerkapacitet ud over, hvad en enkelt fysisk maskine kan levere. Derfor bliver det bydende nødvendigt at opdele data på tværs af en række maskiner. Dette kræver en særlig proces til at administrere filerne på tværs af det distribuerede netværk. HDFS er det filsystem, der specifikt adresserer dette problem. Dette filsystem er mere komplekst end et almindeligt filsystem, fordi det skal håndtere netværksprogrammering, fragmentering, fejltolerant, kompatibilitet med lokalt filsystem og så videre. Det giver Hadoop mulighed for at køre Big Data-applikationer på tværs af flere servere. Det er kendetegnet ved at være meget fejltolerant med høj datagennemstrømning på tværs af billig hardware. Formålet med HDFS-filsystemet er som følger:

  • At håndtere meget store filer
  • Den streaming-dataadgang til filsystemet skal udnytte et skrive-en gang og læse mange gange-mønster.
  • Kør på billig råvarehardware
  • Den skal udnytte dataadgang med lav forsinkelse.
  • Understøtter et enormt antal filer
  • Understøtte flere filskrivere med vilkårlig filændring

HDFS Grundlæggende

En mindste mængde data, der læses og skrives på en disk, har noget, der hedder blokstørrelse . Typisk er størrelsen af ​​denne blok 512 bytes, og filsystemblokke er nogle få kilobytes. HDFS fungerer efter samme princip, men størrelsen på blokken er meget større. Den større blokstørrelse udnytter søgningen ved at minimere søgninger og dermed omkostninger. Disse blokke er fordelt over noget, der kaldes klynger , som ikke er andet end blokke og kopier af blokke på forskellige servere i netværket. Individuelle filer replikeres på tværs af servere i klyngen.

Der er to typer knudepunkter, der opererer i klyngen i et master-slave-mønster. Masterknuden hedder navnenoder og arbejdernoden kaldes datanodes . Det er gennem disse noder, HDFS vedligeholder fil- (og biblioteks-) systemtræet og metadata. Faktisk er en fil opdelt i blokke og gemt i et undersæt af datanoder at sprede sig over hele klyngen. datanoden er ansvarlig for at læse, skrive, blokere oprettelse, sletning og replikeringsanmodninger i filsystemet.

navnenoderne , på den anden side er servere, der overvåger adgangen til filsystemet og vedligeholder datafiler i HDFS. De tilknytter blokke til datanoden og håndterer fil/mappe åbning, luk og omdøbning af anmodninger.

Datanoder er kernedelen af ​​filsystemet og udfører jobbet med lagring og hentning af blokanmodninger fra klienten. Namenode er vedligeholderen, som datanoderne til rapport. Det betyder, at hvis navnenoder udslettes, vil oplysningerne om filerne gå tabt. Derfor sørger Hadoop for, at navneknuden er modstandsdygtig nok til at modstå enhver form for fejl. En teknik til at sikre det er at sikkerhedskopiere det i en sekundær navnenode ved periodisk at flette navnerumsbilledet med redigeringsloggen. Den sekundære navnenod ligger normalt på en separat maskine for at overtage som den primære namenode i tilfælde af en større fejl.

Der er mange måder at interagere med HDFS-filsystemet på, men kommandolinjegrænsefladen er måske den enkleste og mest almindelige. Hadoop kan installeres på én maskine og køre for at få en førstehåndssmag af det. vi vil dække det i efterfølgende artikler, så følg med.

Filsystemoperationer

HDFS-filsystemoperationerne ligner meget de normale filsystemoperationer. Her er nogle lister bare for at give en idé.

Kopierer filer fra det lokale filsystem til HDFS:

% hadoop fs -copyFromLocal docs/sales.txt hdfs://localhost/
   user/mano/sales.txt

Opretter en mappe i HDFS:

% hadoop fs -mkdir students

Viser filer og mapper i den aktuelle arbejdsmappe i HDFS:

% hadoop fs -ls .

Konklusion

HDFS er en implementering af, hvad et filsystem repræsenteret af Hadoops abstraktion gør. Hadoop er skrevet i Java; derfor bliver alle filsysteminteraktioner intercederet gennem Java API. Kommandolinjegrænsefladen er en skal, der er beregnet til almindelige interaktioner. Studiet af HDFS åbner en anden horisont for sektoren for distribueret arkitektur og dens indviklede arbejdsprocedurer. Der arbejdes meget på at perfektionere denne computermodel, hvoraf drivkraften uden tvivl har været Big Data i de senere år.

Reference

HDFS-arkitekturdokumentation


  1. Hvordan konverterer jeg fra BLOB til TEXT i MySQL?

  2. NodeJS MySQL Dump

  3. Om GO-kommandoen i SQL Server

  4. Oracle ORA-01008:ikke alle variable er bundet Fejl m/parametre