hadoop hdfs hadoop distributed file system
Aquest tutorial explica Hadoop HDFS: sistema de fitxers distribuïts, components i arquitectura de clústers Hadoop. També aprendreu sobre l'algorisme de consciència del rack:
Com hem après al tutorial anterior, el problema més gran de Big Data és emmagatzemar-lo en un sistema existent. I fins i tot si d’alguna manera l’emmagatzemem en un sistema existent, el processament de BigData va trigar anys.
Els resultats que volíeu en qüestió de minuts van trigar setmanes o potser en mesos i, per això, es va perdre el valor d’aquest resultat.
=> Mireu aquí les sèries de formació BigData senzilles.
Què aprendreu:
Sistema de fitxers distribuït de Hadoop
Per resoldre aquest problema o fer-li front, ara tenim HADOOP. Hadoop va resoldre aquest gran problema de dades mitjançant Hadoop HDFS.
Hadoop HDFS ha resolt el problema d 'emmagatzematge de Big Data i Reduir mapa Hadoop va resoldre els problemes relacionats amb el processament de part del Big Data.
Ara sabem que Hadoop té bàsicament un sistema de fitxers distribuït ... PER… PER QUÈ?
com obriu fitxers jar
Per què Hadoop és un sistema de fitxers distribuït?
Intentem entendre què és un sistema de fitxers distribuït i entenem els avantatges del sistema de fitxers distribuït.
Sistema de fitxers distribuït
Prenguem un exemple de lectura de 1 TB de dades. Tenim un servidor que és un bon servidor de gamma alta que té 4 canals d’entrada / sortida (sortida d’entrada) i cada canal té un ample de banda de 100 MB / s, mitjançant aquesta màquina podreu llegir aquestes dades de 1 TB a 43 Minuts.
Ara bé, si portem 10 números de màquines exactament així, què passarà?
Temps reduït a 4,3 minuts exactament. Es deu al fet que tot l’esforç es va dividir en 10 màquines i és per això que el temps que es va trigar a processar 1 TB de dades es redueix a 1/10thés a dir, 4,3 minuts.
De la mateixa manera, quan considerem BigData, aquestes dades es divideixen en diversos fragments de dades i en realitat processem aquestes dades per separat i és per això que Hadoop ha escollit el sistema de fitxers distribuït sobre un sistema de fitxers centralitzat.
Components d'Hadoop
Hadoop HDFS té 2 components principals per resoldre els problemes amb BigData.
- El primer component és l’Hadoop HDFS per emmagatzemar Big Data.
- El segon component és la reducció del mapa d’Hadoop per processar dades massives.
Ara, quan veiem l’arquitectura d’Hadoop (imatge que es mostra a continuació), té dues ales on es troba l’esquerra 'Emmagatzematge' i la dreta ho és 'Processant' . Això vol dir que l’esquerra és HDFS, és a dir, el sistema de fitxers de distribució Hadoop i la dreta, és YARN i Map Reduce, és a dir, la part de processament.
Mitjançant HDFS, Hadoop ens permet emmagatzemar Big Data i mitjançant YARN & Map Reduce, Hadoop ens permet processar el mateix Big Data que estem emmagatzemant a HDFS.
Com podeu veure a la imatge superior, HDFS té dos dimonis principals o podeu anomenar-los com a processos o fils que no són més que processos JAVA, és a dir, que s’executen dins d’un JVM - NameNode i DataNode.
NameNode és un dimoni mestre que s’executa a màquina principal, és a dir, essencialment una màquina de gamma alta i DataNode és una màquina esclau que s’executa en maquinari bàsic. Hi pot haver més DataNode, ja que les màquines esclaus són més que una màquina principal.
Per tant, sempre tenim un NameNode i diversos DataNode que s’executen a màquines esclaus.
De la mateixa manera, tenim YARN a l’altra banda, que torna a tenir dos dimonis, un és el gestor de recursos que s’executa a la màquina principal i el gestor de nodes que s’executa a la màquina esclau igual que el DataNode. Per tant, cada màquina esclau té dos dimonis: un és el DataNode i l’altre és el Gestor de nodes.
La màquina principal té el NameNode en execució i el Gestor de recursos en execució. NameNode és responsable de gestionar les dades del sistema de fitxers distribuït de Hadoop i el gestor de recursos és el responsable d’executar les tasques de processament sobre aquestes dades emmagatzemades.
NameNode i DataNode
Aprofundirem en l'arquitectura HDFS i, per tant, és important entendre què és un NameNode i un DataNode ja que aquests són els dos dimonis principals que realment executen l'HDFS completament.
NameNode
- És un dimoni mestre.
- Gestió i manteniment dels DataNodes.
- Registra les metadades.
- Rep informes de batecs del cor i bloqueig de tots els DataNodes.
DataNode
- És un dimoni esclau.
- Les dades reals s’emmagatzemen aquí.
- Atén les sol·licituds de lectura i escriptura dels clients.
Només cal centrar-se en el diagrama, com podeu veure, hi ha un node de nom de màquina centralitzada que controla diversos nodes de dades que hi ha, és a dir, maquinari de productes bàsics. Per tant, Name Node no és res més que el dimoni mestre que manté tot el DataNode.
Aquests NameNode tenen tota la informació sobre les dades que s’emmagatzemen al DataNode. DataNode, com el propi nom suggereix, emmagatzema les dades que hi ha al clúster Hadoop.
NameNode només té informació sobre quines dades s’emmagatzemen en quin DataNode. Per tant, el que podem dir és que NameNode emmagatzema les metadades de les dades que s’emmagatzemen als DataNodes.
DataNode també fa una altra tasca, és a dir, envia regularment els batecs del cor al NameNode. Els batecs del cor en realitat indiquen al NameNode que aquest DataNode encara està viu.
Per exemple, DataNodes envia un batec del cor al NameNode i d'aquesta manera NameNode té la imatge que aquests DataNodes estan vius, de manera que NameNode pot utilitzar aquests DataNode per emmagatzemar més dades o llegir les dades d'aquests DataNodes.
Ara passem al DataNode, DataNode no és res més que els dimonis esclaus que realment emmagatzema les dades que s’envien al clúster Hadoop. Aquests DataNodes són els que realment serveixen la sol·licitud de lectura i escriptura que fan els clients.
Si algú vol llegir les dades del clúster Hadoop, aquestes sol·licituds són realment processades pels nodes de dades on resideixen les dades.
Arquitectura de clústers Hadoop
Al tema anterior relacionat amb NameNode i DataNode, vam utilitzar el terme 'Clúster Hadoop'. Fem una ullada ràpida a què és exactament?
La imatge anterior mostra la visió general d’una arquitectura de clústers Hadoop. Hadoop Cluster no és res més que una topologia Màster-Esclau, en la qual hi ha una Màquina Màster com es pot veure a la part superior, és a dir, Hadoop Cluster. En aquesta màquina principal, hi ha un NameNode i el gestor de recursos que s’executen, és a dir, els dimonis mestres.
La màquina principal està connectada a tota la màquina esclau mitjançant els commutadors bàsics, ja que aquests nodes de dades s’emmagatzemen en diversos bastidors, de manera que com podeu veure Ordinador 1, Ordinador 2, Ordinador 3 fins a Ordinador N. Això no és res més que l’esclau. Màquines o els DataNodes i estan presents en un mateix bastidor.
'El bastidor és en realitat un grup de màquines que estan presents físicament en un lloc concret i estan connectades entre si'.
Per tant, l’amplada de banda de xarxa entre cada màquina és el mínim possible. De la mateixa manera, hi ha més bastidors, però no són presents al mateix lloc, per tant, podem tenir un nombre “n” de bastidors i també podem tenir un “n” nombre de nodes de dades o ordinadors o màquines esclaus dins d’aquests bastidors.
Així és com les màquines esclaves es distribueixen realment sobre el clúster, però al mateix temps estan connectades entre si.
Com s’emmagatzemen les dades a HDFS?
Ara anem passant lentament cap als detalls de com funciona HDFS del tot. Aquí explorarem l’arquitectura de HDFS.
Quan diem, emmagatzemant un fitxer en HDFS, les dades s’emmagatzemen com a blocs en HDFS. Tot el fitxer no s’emmagatzema a HDFS, és perquè, com ja sabeu, Hadoop és un sistema de fitxers distribuït.
Per tant, si teniu una mida de fitxer de potser 1 PB (Peta Byte), aquest tipus d’emmagatzematge no es troba en una màquina única, ja que el clúster Hadoop es fa mitjançant el maquinari bàsic. El maquinari d’una sola màquina tindria aproximadament 1 TB o 2 TB.
Per tant, cal dividir tot el fitxer en trossos de dades que s’anomenen blocs HDFS.
- Cada fitxer s’emmagatzema a HDFS com a blocs.
- La mida per defecte de cada bloc és d’uns 128 MB a Apache Hadoop 2.x (i 64 MB a la versió anterior, és a dir, a Apache Hadoop 1.x).
- Hi ha una possibilitat d’augmentar o disminuir la mida del fitxer dels blocs mitjançant el fitxer de configuració, és a dir, hdfssite.xml que ve amb el paquet Hadoop.
Prenguem un exemple per entendre aquest mecanisme i veure com es creen aquests blocs.
Considerem un fitxer de 248 MB aquí, ara si trencem aquest fitxer o si el traslladem a Hadoop Cluster, és a dir, 2.x, aquest fitxer es desglossarà en un bloc, és a dir, el bloc A de 128 MB i un altre bloc B de 120 MB.
Com podeu veure, el primer bloc és de 128 MB, és a dir, la primera llosa es redueix i és per això que l’altre bloc és de 120 MB i no de 128 MB, és a dir, no perdrà espai si la mida restant del fitxer és menor que la mida de bloc predeterminada.
Ara tenim un altre problema al davant, és a dir, és segur tenir una sola còpia de cada bloc?
referència indefinida a c ++
La resposta és NO, perquè hi ha la possibilitat que el sistema falli i no sigui res més que maquinari bàsic a causa del qual podríem tenir grans problemes. Per superar aquest problema, Hadoop HDFS té una bona solució, és a dir, 'La replicació del bloc'.
Replicació de blocs d’arquitectura Hadoop
Hadoop crea les rèpliques de tots els blocs que s’emmagatzemen al sistema de fitxers distribuïts de Hadoop i així és com l’Hadoop és un sistema tolerant a fallades, és a dir, tot i que el vostre sistema falla o que el vostre DataNode falla o que es perd una còpia, tindreu diverses còpies més present als altres DataNodes o als altres servidors perquè sempre pugueu escollir aquestes còpies.
Com es veu al diagrama anterior que representa la replicació de blocs, hi ha cinc blocs diferents d’un fitxer, és a dir, el bloc 1, 2,3,4,5. Comproveu primer el bloc 1 i trobareu còpies del bloc 1 als nodes 1, 2 i 4.
De la mateixa manera, el bloc 2 també té tres còpies, és a dir, el node 2, el node 3 i el node 4, de manera que el mateix passa amb els blocs 3, 4 i 5 dels respectius nodes.
Així, a part de les rèpliques que es creen, cada bloc s’ha reproduït tres vegades, és a dir, Hadoop segueix un factor de replicació per defecte de tres, cosa que significa que qualsevol fitxer que copieu al sistema de fitxers de distribució de Hadoop es reprodueix tres vegades.
Dit d’una altra manera, si copieu 1 GB d’un fitxer al sistema de fitxers de distribució de Hadoop, en realitat emmagatzema 3 GB d’un fitxer a HDFS. La part bona és que el factor de rèplica per defecte es pot canviar fent un canvi als fitxers de configuració de Hadoop.
Com decideix Hadoop on emmagatzemar les rèpliques?
Hadoop realment segueix el concepte de Rack Awareness per decidir on emmagatzemar la rèplica d’un bloc.
A continuació es mostra el diagrama que representa l’algorisme de consciència del rack.
Hi ha tres racks diferents, és a dir, Rack-1, Rack-2 i Rack-3.
Rack-1 té quatre DataNodes, igual que Rack-2 i Rack-3, de manera que, en total, el clúster Hadoop estarà format per tots els tres racks i hi haurà 12 DataNodes.
Diguem que el bloc A es copia al DataNode 1 al rack-1, segons el concepte de Rack Awareness, la rèplica del bloc A no es pot crear al mateix rack i cal crear-la en qualsevol altre rack a part del rack-1 com el fitxer principal ja existeix al Rack-1.
Si creem les rèpliques del bloc A al mateix Rack-1 i en cas que falla tot el Rack-1, perdrem les dades amb seguretat, per tant les rèpliques s’han d’emmagatzemar en qualsevol altre rack, però no al Rack-1.
Per tant, la rèplica es crearà al DataNode 6 i 8 del Rack-2. De la mateixa manera, per al bloc B i el bloc C, les rèpliques es crearan en diferents bastidors, tal com es mostra al diagrama anterior.
Conclusió
Hem après amb els següents consells d’aquest tutorial:
- Hadoop HDFS resol el problema d'emmagatzematge de BigData.
- Hadoop Map Reduce resol els problemes relacionats amb el processament de BigData.
- NameNode és un dimoni mestre i s’utilitza per gestionar i mantenir els DataNodes.
- DataNode és un dimoni esclau i les dades reals s’emmagatzemen aquí. Serveix per llegir i escriure peticions dels clients.
- A Hadoop Cluster, un bastidor és en realitat un grup de màquines que estan presents físicament en un lloc concret i estan connectades entre si.
- Cada fitxer s’emmagatzema a HDFS com a blocs.
- La mida predeterminada de cada bloc és d’uns 128 MB a Apache Hadoop 2.x (64 MB a la versió anterior, és a dir, a Apache Hadoop 1.x)
- Hi ha una possibilitat d’augmentar o disminuir la mida del fitxer dels blocs mitjançant el fitxer de configuració, és a dir, hdfssite.xml que ve amb el paquet Hadoop.
Al proper tutorial sobre HDFS, coneixerem l’arquitectura HDFS i els mecanismes de lectura i escriptura.
=> Visiteu aquí per veure la sèrie BigData Training per a tothom.
Lectura recomanada
- Què és Hadoop? Tutorial d'Apache Hadoop per a principiants
- Manipulació de fitxers a Unix: Visió general del sistema de fitxers Unix
- Caràcters especials o metacaràcters Unix per a la manipulació de fitxers
- Permisos d'accés a fitxers Unix: Unix Chmod, Chown i Chgrp
- Suite de proves Ranorex, creació de mòduls de prova, fitxer UserCode, Xpath i vinculació de dades
- Objectes de fitxer VBScript: CopyFile, DeleteFile, OpenTextFile, lectura i escriptura de fitxers de text
- Operacions de sortida d'entrada de fitxers a C ++
- Desplegament de Java: creació i execució del fitxer JAR de Java