sql >> Database >  >> RDS >> Database

Inleiding tot HDFS | Wat is HDFS en hoe werkt het?

De kerntechniek voor het opslaan van bestanden in opslag ligt in het bestandssysteem dat de besturingsomgeving gebruikt. In tegenstelling tot gewone bestandssystemen, gebruikt Hadoop een ander bestandssysteem dat zich bezighoudt met grote datasets over een gedistribueerd netwerk. Het heet Hadoop Distributed File System (HDFS) . Dit artikel introduceert het idee, met gerelateerde achtergrondinformatie om mee te beginnen.

Wat is een bestandssysteem?

Een bestandssysteem is typisch een methode en gegevensstructuur die het besturingssysteem gebruikt om bestanden op een schijf of partitie te beheren. Vanuit het perspectief van een magnetische schijf is elke data een lading die is opgeslagen in sectoren over sporen. Denk aan sporen als spiraalvormige rijen en sectoren als de kleine cellen over de spiraalvormige sporen. Als we nu de schijf vragen om wat gegevens te lokaliseren, kan hij in het beste geval zijn kop omleiden naar enkele sectoren in de spiraalreeks. Deze onbewerkte gegevens hebben geen betekenis tenzij het besturingssysteem in beeld komt; het is verantwoordelijk voor het afbakenen van de informatie uit een verzameling sectoren die als bestand moeten worden herkend. Een besturingssysteem organiseert de informatie in een boekhoudkundige gegevensstructuur die een bestandssysteem wordt genoemd. Deze structuur definieert het boekhoudpatroon. Maar er is een technisch verschil over hoe besturingssystemen deze structuur beheren. Windows gebruikt bijvoorbeeld het FAT32-, NTFS-model, Linux gebruikt EXT2, EXT3, enzovoort. Maar het basisidee is dat ze allemaal de gegevens organiseren volgens een bepaalde structuur.

De organisatie van het bestandssysteem is primair verantwoordelijk voor het beheren van het maken, wijzigen en verwijderen van bestanden (mappen zijn ook bestanden), schijfpartities, bestandsgroottes, enzovoort, en ze werken rechtstreeks op onbewerkte sectoren van een schijf of partitie.

Bestanden in een gedistribueerd systeem

De kenmerken van een gedistribueerd systeem zijn verschillend in die zin dat de opslag verspreid is over meerdere machines in een netwerk. Een enkele repository kan niet zo'n grote hoeveelheid data bevatten. Als een enkele machine een beperkte opslagcapaciteit en verwerkingskracht heeft, maar wanneer de verwerkingstaak en opslag wordt verdeeld over machines over het netwerk, worden de kracht en efficiëntie talrijk. Dit opent niet alleen de mogelijkheid van uitgebreide verwerkingskracht, maar maakt ook gebruik van de bestaande infrastructuur. Dit resultaat is dat de kosten worden geminimaliseerd, maar de efficiëntie wordt verhoogd. Elke afzonderlijke machine in het netwerk wordt een potentieel werkpaard met beperkte gegevens, terwijl het samen deel uitmaakt van onbeperkte opslag en uitgebreide verwerkingskracht. De afweging is complexiteit. Als dat kan worden benut met innovatieve technieken, is een gedistribueerd systeem uitstekend geschikt om de problemen van big data aan te pakken. Het HDFS-bestandssysteem wil dat bereiken. In feite zijn er, naast HDFS, veel andere vergelijkbare gedistribueerde bestandssystemen, zoals IBM's GPFS (General Parallel File System), Ceph (Wikipedia-link:lijst met gedistribueerde bestandssystemen) en dergelijke. Ze proberen dit probleem allemaal vanuit verschillende richtingen aan te pakken met verschillende succespercentages.

HDFS-overzicht

Het normale bestandssysteem is ontworpen om op een enkele machine of enkele besturingsomgeving te werken. De datasets in Hadoop hebben meer opslagcapaciteit nodig dan een enkele fysieke machine kan bieden. Daarom wordt het noodzakelijk om gegevens over een aantal machines te verdelen. Dit vereist een speciaal proces om de bestanden over het gedistribueerde netwerk te beheren. HDFS is het bestandssysteem dat dit probleem specifiek aanpakt. Dit bestandssysteem is complexer dan een gewoon bestandssysteem omdat het te maken heeft met netwerkprogrammering, fragmentatie, fouttolerantie, compatibiliteit met het lokale bestandssysteem, enzovoort. Het stelt Hadoop in staat om Big Data-applicaties op meerdere servers uit te voeren. Het wordt gekenmerkt door een hoge fouttolerantie met een hoge gegevensdoorvoer via goedkope hardware. Het doel van het HDFS-bestandssysteem is als volgt:

  • Om met zeer grote bestanden om te gaan
  • De toegang tot streaminggegevens tot het bestandssysteem moet gebruikmaken van een patroon van eenmaal schrijven en vele malen lezen.
  • Gebruik goedkope standaardhardware
  • Het moet gebruikmaken van gegevenstoegang met lage latentie.
  • Ondersteun een enorm aantal bestanden
  • Ondersteun meerdere bestandsschrijvers met willekeurige bestandsaanpassing

HDFS-basis

Een kleinste hoeveelheid gegevens die wordt gelezen en geschreven op een schijf heeft iets dat blokgrootte wordt genoemd . Meestal is de grootte van dit blok 512 bytes en zijn bestandssysteemblokken enkele kilobytes. HDFS werkt volgens hetzelfde principe, maar de grootte van het blok is veel groter. De grotere blokgrootte maakt gebruik van de zoekopdracht door het aantal zoekopdrachten en dus de kosten te minimaliseren. Deze blokken zijn verdeeld over iets dat clusters wordt genoemd , die niets anders zijn dan blokken en kopieën van blokken op verschillende servers in het netwerk. Individuele bestanden worden gerepliceerd op servers in het cluster.

Er zijn twee soorten knooppunten die in het cluster werken in een master-slave-patroon. Het hoofdknooppunt heet namenodes en het werkknooppunt heet datanodes . Het is via deze knooppunten dat HDFS de bestands- (en directory) systeemstructuur en metadata onderhoudt. In feite wordt een bestand opgesplitst in blokken en opgeslagen in een subset van datanodes te verspreiden over het cluster. De datanode is verantwoordelijk voor lees-, schrijf-, blokaanmaak-, verwijderings- en replicatieverzoeken in het bestandssysteem.

De namenodes , aan de andere kant, zijn servers die de toegang tot het bestandssysteem bewaken en gegevensbestanden in de HDFS onderhouden. Ze wijzen blokken toe aan de datanode en behandelen verzoeken voor het openen, sluiten en hernoemen van bestanden/directory's.

Datanodes zijn het kernonderdeel van het bestandssysteem en doen het werk van het opslaan en ophalen van blokverzoeken van de client. Namenode is de beheerder naar wie datanodes verslag doen van. Dit betekent dat als namenodes worden gewist, de informatie over de bestanden verloren gaat. Daarom zorgt Hadoop ervoor dat het naamknooppunt veerkrachtig genoeg is om elke vorm van falen te weerstaan. Een techniek om daar zeker van te zijn is om er een back-up van te maken in een secundaire namenode door de naamruimte-afbeelding periodiek samen te voegen met het bewerkingslogboek. De secundaire namenode bevindt zich meestal op een aparte machine om het over te nemen als de primaire namenode in geval van een grote storing.

Er zijn veel manieren om te communiceren met het HDFS-bestandssysteem, maar de opdrachtregelinterface is misschien wel de eenvoudigste en meest voorkomende. Hadoop kan op één machine worden geïnstalleerd en worden uitgevoerd om het uit de eerste hand te proeven. we zullen dat in volgende artikelen behandelen, dus houd ons in de gaten.

Bewerkingen van het bestandssysteem

De bewerkingen van het HDFS-bestandssysteem lijken veel op de normale bewerkingen van het bestandssysteem. Hier zijn enkele lijsten om een ​​idee te geven.

Kopieert bestanden van het lokale bestandssysteem naar HDFS:

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

Creëert een map in HDFS:

% hadoop fs -mkdir students

Geeft bestanden en mappen weer in de huidige werkmap in HDFS:

% hadoop fs -ls .

Conclusie

HDFS is een implementatie van wat een bestandssysteem vertegenwoordigd door de abstractie van Hadoop doet. Hadoop is geschreven in Java; daarom worden alle interacties met het bestandssysteem bemiddeld via de Java API. De opdrachtregelinterface is een shell die is bedoeld voor algemene interacties. De studie van HDFS opent een andere horizon voor de sector van gedistribueerde architectuur en zijn ingewikkelde werkprocedures. Er wordt hard gewerkt om dit computermodel te perfectioneren, waarvan de laatste jaren ongetwijfeld de drijvende kracht achter Big Data was.

Referentie

Documentatie over HDFS-architectuur


  1. SQLite MIN

  2. 8 Nieuwe Oracle-compatibiliteitsfuncties in EnterpriseDB PPAS 9.2 Beta

  3. ORDER BY behouden in SELECT INTO

  4. Controleer hoeveel e-mailitems in de wachtrij staan ​​in Database Mail in SQL Server (T-SQL)