sql >> Databasteknik >  >> RDS >> Database

Introduktion till HDFS | Vad är HDFS och hur fungerar det?

Kärntekniken för att lagra filer i lagring ligger i filsystemet som operativmiljön använder. Till skillnad från vanliga filsystem använder Hadoop ett annat filsystem som hanterar stora datamängder över ett distribuerat nätverk. Det kallas Hadoop Distributed File System (HDFS) . Den här artikeln introducerar idén, med relaterad bakgrundsinformation till att börja med.

Vad är ett filsystem?

Ett filsystem är vanligtvis en metod och datastruktur som operativsystemet använder för att hantera filer på en disk eller partition. Ur perspektivet av en magnetisk skiva är varje data en laddning som lagras i sektorer över spår. Tänk på spår som spiralrader och sektorer som de små cellerna över spiralspåren. Om vi ​​nu ber disken att lokalisera vissa data, kan den i bästa fall rikta om huvudet till vissa sektorer i spiralsekvensen. Dessa rådata är inte meningsfulla om inte operativsystemet kommer in i bilden; den ansvarar för att avgränsa informationen från en samling sektorer som ska erkännas som en fil. Ett operativsystem organiserar informationen i en bokföringsdatastruktur som kallas ett filsystem. Denna struktur definierar bokföringsmönstret. Men det finns en viss teknisk skillnad om hur OS hanterar denna struktur. Till exempel använder Windows FAT32, NTFS-modellen, Linux använder EXT2, EXT3 och så vidare. Men grundtanken är att de alla organiserar data enligt någon definierad struktur.

Filsystemorganisationen är primärt ansvarig för att hantera skapande, modifiering och radering av filer (kataloger är också filer), diskpartition, filstorlekar och så vidare, och de verkar direkt på råa sektorer av en disk eller partition.

Filer i ett distribuerat system

Egenskaperna för ett distribuerat system är olika i den meningen att lagringen är utspridda över flera maskiner i ett nätverk. Ett enda arkiv kan inte innehålla en så stor mängd data. Om en enskild maskin har en begränsad lagringskapacitet och processorkraft, men när bearbetningsjobbet och lagringen fördelas mellan maskiner över nätverket, blir kraften och effektiviteten mångfaldig. Detta öppnar inte bara upp möjligheten till omfattande processorkraft utan utnyttjar också användningen av den befintliga infrastrukturen. Detta resultat är att kostnaden minimeras, samtidigt som effektiviteten ökar. Varje enskild maskin i nätverket blir en potentiell arbetshäst som rymmer begränsad data samtidigt som den är en del av obegränsad lagring och omfattande processorkraft. Avvägningen är komplexitet. Om det kan utnyttjas med innovativa tekniker är ett distribuerat system utmärkt för att hantera problemen med big data. HDFS-filsystemet syftar till att uppnå det. Om faktum, bortom HDFS, finns det många andra liknande distribuerade filsystem, såsom IBM:s GPFS (General Parallel File System), Ceph, (Wikipedialänk:lista över distribuerade filsystem) och liknande. De försöker alla ta itu med detta problem från olika håll med varierande framgångsfrekvens.

HDFS-översikt

Det normala filsystemet utformades för att fungera på en enda maskin eller enstaka operativmiljö. Datauppsättningarna i Hadoop kräver lagringskapacitet utöver vad en enskild fysisk maskin kan tillhandahålla. Därför blir det absolut nödvändigt att partitionera data på ett antal maskiner. Detta kräver en speciell process för att hantera filerna över det distribuerade nätverket. HDFS är filsystemet som specifikt åtgärdar detta problem. Detta filsystem är mer komplext än ett vanligt filsystem eftersom det måste hantera nätverksprogrammering, fragmentering, feltolerant, kompatibilitet med lokala filsystem, och så vidare. Det ger Hadoop möjlighet att köra Big Data-applikationer över flera servrar. Den kännetecknas av att den är mycket feltolerant med hög datagenomströmning över lågkostnadshårdvara. Syftet med HDFS-filsystemet är följande:

  • För att hantera mycket stora filer
  • Den strömmande dataåtkomsten till filsystemet måste utnyttja ett mönster en gång och läsa många gånger.
  • Kör på billig hårdvara
  • Den måste utnyttja dataåtkomst med låg latens.
  • Stöd ett enormt antal filer
  • Stöd flera filskrivare med godtycklig filändring

Grundläggande om HDFS

En minsta mängd data som läses och skrivs till en disk har något som kallas blockstorlek . Normalt är storleken på detta block 512 byte och filsystemsblock är några kilobyte. HDFS fungerar på samma princip, men storleken på blocket är mycket större. Den större blockstorleken utnyttjar sökningen genom att minimera sökningar och därmed kostnaden. Dessa block är fördelade över något som kallas kluster , som inte är annat än block och kopior av block på olika servrar i nätverket. Enskilda filer replikeras över servrar i klustret.

Det finns två typer av noder som arbetar i klustret i ett master-slave-mönster. Huvudnoden kallas namnnoder och arbetarnoden kallas datanoder . Det är genom dessa noder HDFS underhåller filen (och katalogen) systemträd och metadata. Faktum är att en fil delas upp i block och lagras i en delmängd av datanoder att sprida sig över klustret. datanoden ansvarar för läsning, skrivning, blockering, radering och replikeringsförfrågningar i filsystemet.

namnnoderna , å andra sidan, är servrar som övervakar åtkomst till filsystemet och underhåller datafiler i HDFS. De mappar block till datanoden och hanterar förfrågningar om att öppna, stänga och byta namn på filer/kataloger.

Datanoder är kärnan i filsystemet och gör jobbet med lagring och hämtning av blockförfrågningar från klienten. Namnod är underhållaren till vilken datanoder Rapportera. Detta innebär att om namnnoder raderas, skulle informationen om filerna gå förlorad. Därför ser Hadoop till att namnnoden är tillräckligt motståndskraftig för att motstå alla typer av misslyckanden. En teknik för att säkerställa det är att säkerhetskopiera den i en sekundär namnnod genom att regelbundet slå samman namnutrymmesbilden med redigeringsloggen. Den sekundära namnnoden vanligtvis finns på en separat dator för att ta över som den primära namnnoden vid ett större fel.

Det finns många sätt att interagera med HDFS-filsystemet, men kommandoradsgränssnittet är kanske det enklaste och vanligaste. Hadoop kan installeras på en maskin och köras för att få en förstahandssmak av den. vi kommer att ta upp det i efterföljande artiklar, så håll utkik.

Filsystemoperationer

HDFS-filsystemoperationerna är ganska lika de normala filsystemoperationerna. Här är några listor bara för att ge en idé.

Kopierar filer från det lokala filsystemet till HDFS:

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

Skapar en katalog i HDFS:

% hadoop fs -mkdir students

Listar filer och kataloger i den aktuella arbetskatalogen i HDFS:

% hadoop fs -ls .

Slutsats

HDFS är en implementering av vad ett filsystem representerat av Hadoops abstraktion gör. Hadoop är skrivet i Java; därför intercederas alla filsysteminteraktioner genom Java API. Kommandoradsgränssnittet är ett skal som tillhandahålls för vanliga interaktioner. Studiet av HDFS öppnar en annan horisont för sektorn för distribuerad arkitektur och dess invecklade arbetsprocedurer. Mycket arbete pågår för att fullända denna datormodell, vars drivkraft utan tvekan har varit Big Data de senaste åren.

Referens

HDFS-arkitekturdokumentation


  1. SQL SERVER 2016 – Jämföra exekveringsplaner

  2. Postgresql Välj rader där kolumn =array

  3. 19 Onlineresurser för att lära dig om databasdesignfel

  4. Hur man lagrar Emoji-tecken i MySQL-databasen